【发布时间】:2012-02-09 18:18:12
【问题描述】:
我目前正在努力让我的CheckBoxes 在我的GridViewColumns 中正确居中。
我为我的CheckBoxes 定义了一个Style,如下所示:
<Style TargetType="{x:Type CheckBox}" x:Key="DataGridCheckBox">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="IsEnabled" Value="False" />
<Setter Property="Margin" Value="4" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type GridViewColumn}},Path=ActualWidth}" />
</Style>
我的CheckBoxes 使用DataTemplate 添加到GridViewColumn 中,如下所示:
<GridViewColumn Header="Comment">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Style="{StaticResource DataGridCheckBox}" IsChecked="{Binding PropertyItem.Comment, Converter={StaticResource booleanConverter}, ConverterParameter='string'}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
但我遇到的问题是 CheckBoxes 保持左对齐(即使在调整列大小时)。
有什么想法吗?
提前致谢,
桑尼
编辑:我一直在空白窗口中处理CheckBox,我认为问题可能与CheckBoxcontrol 有关。如果我制作了一个非常宽的CheckBox,我似乎仍然无法让它的CheckBox部分与自身对齐。它总是想去左上角。根据名称,ContentAlignment 属性似乎只对齐内容。
【问题讨论】:
-
如果你移动 CheckBox 的 HorizontalAlignment="Center" 属性并且不使用 Style 会发生什么,同样的问题?
-
是的。同样的问题。对齐属性似乎没有任何区别,但我知道正在应用模板,因为复选框已正确启用并且属性在设计时看起来正确。
-
你有没有想过如何将样式应用到复选框列?我很想知道怎么做。
标签: wpf data-binding styles