我想中心和拉伸在的细胞 。
我试图做到这一点在许多方面:
<UniformGrid>
<CheckBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" />
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" />
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" ClipToBounds="True" />
<CheckBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ClipToBounds="True" />
- 选择的小区
UniformGrid http://oi48.tinypic.com/ncayy0.jpg - 选择的小区
UniformGrid http://oi49.tinypic.com/20hwo47.jpg
但它并不能满足我,因为我想伸展 (就像在单元格和中锋 (就像在在他们的小区同时这些复选框。
我该怎么做?
[编辑1]
我试图让这个我不必点击小检查,而是可以按整个小区。
[编辑2]
其实我要添加从C#代码的复选框,因此,如果在XAML提出的解决方案是不是“移植”到这将是不是非常有帮助的C#语言。
如果我用默认值弹力这个简单的标记:
<UniformGrid>
<CheckBox Content="This is a checkbox" />
<CheckBox Content="This is a checkbox" />
<CheckBox Content="This is a checkbox" />
<CheckBox Content="This is a checkbox" />
</UniformGrid>
我能够在UniformGrid的每个单元的任意位置单击以选中或取消选中该单元格中的复选框。
这个功能是做你想要什么。 如果你想改变复选框的外观,你可以使用一个控件模板。
如果你不想改变CheckBox的大小和你只是想在视觉中心,它同时能够单击该单元格,以检查它,你可以使用这样的模板:
<CheckBox>
<CheckBox.Template>
<ControlTemplate TargetType="{x:Type CheckBox}">
<Grid Background="Transparent">
<CheckBox IsChecked="{TemplateBinding Property=IsChecked}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</CheckBox.Template>
</CheckBox>
编辑:
将其应用在运行时的资源,在适当范围内的资源部分写的XAML。 你可以将其放置在本地资源字典,如果你只需要它一个控制,或者如果你想在全球访问它,把它的App.xaml中像这样:
<Application.Resources>
<ControlTemplate x:Key="StretchedCheckBox" TargetType="{x:Type CheckBox}">
<Grid Background="Transparent">
<CheckBox IsChecked="{TemplateBinding Property=IsChecked}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Application.Resources>
注意它有一个关键的“StretchedCheckBox”。 现在,您可以使用代码中应用它:
ControlTemplate stretchedTemplate = FindResource("StretchedCheckBox") as ControlTemplate;
CheckBox chkBox = new CheckBox();
chkBox.Template = stretchedTemplate;
我不认为你可以影响的大小CheckBox
一样,由于尺寸是在控制模板预先确定
一个解决办法是使用LayoutTransform
缩放复选框以更大
<CheckBox>
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="5" ScaleY="5" />
</CheckBox.LayoutTransform>
</CheckBox>
应当指出的是,这种秤旁边的复选框文本以及将CheckBox本身,有时取决于你如何扩展它没有看起来非常漂亮。
另一种替代的解决方案是复制从MSDN例如复选框模板 ,并产生更大的CheckBox