我正在制作一个 WPF 应用程序。我有一个数据网格,其列标题包含一个复选框。我使用此复选框来选中/取消选中所有功能。当我在 Win7 中运行该应用程序时,它看起来很正常,但在 XP 上,该复选框被奇怪地压缩,并且在单击时不会选中。任何反馈将不胜感激。
受影响的代码:
<Grid>
<DataGrid RowDetailsVisibilityMode="VisibleWhenSelected" SelectionMode="Extended" SelectionUnit="Cell" AutoGenerateColumns="False" IsReadOnly="False" CanUserSortColumns="False" CanUserResizeRows="False" CanUserAddRows="False" CanUserDeleteRows="False" Height="Auto" Margin="10,10,10,10" Name="dgSurveyGroups" VerticalAlignment="Top" RowHeight="26" AlternatingRowBackground="Gainsboro" RowHeaderWidth="0" HorizontalAlignment="Left" Width="346">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding description, Mode=OneWay}" Header="Surveygroup" Width="*"/>
<DataGridCheckBoxColumn Binding="{Binding Active}" Header="" Width="24">
<DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Name="SuperCheckBox"/>
</DataTemplate>
</DataGridCheckBoxColumn.HeaderTemplate>
</DataGridCheckBoxColumn>
<DataGridTemplateColumn Header="Start Date" Width="110">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding startDate, StringFormat=d}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding startDate}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="End Date" Width="110">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding endDate, StringFormat=d}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding endDate}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
Win7:
WinXP:
最佳答案
您可以强制 WPF 在 XP 中使用 Windows Vista/7 Aero 主题。这是 WPF 使用矢量图形自行重新实现所有系统图形功能这一事实的有趣含义之一。
但是请注意,该应用程序在 Windows XP 中看起来会有点格格不入(带有所有现代的玻璃按钮等)。
关于wpf - 我的 WPF 应用程序中的复选框宽度在 XP 和 Win7 之间为何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972086/