wpf - 我的 WPF 应用程序中的复选框宽度在 XP 和 Win7 之间为何不同?

标签 wpf xaml

我正在制作一个 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:
enter image description here

WinXP:
enter image description here

最佳答案

您可以强制 WPF 在 XP 中使用 Windows Vista/7 Aero 主题。这是 WPF 使用矢量图形自行重新实现所有系统图形功能这一事实的有趣含义之一。

How to do that .

但是请注意,该应用程序在 Windows XP 中看起来会有点格格不入(带有所有现代的玻璃按钮等)。

关于wpf - 我的 WPF 应用程序中的复选框宽度在 XP 和 Win7 之间为何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972086/

相关文章:

c# - 如何使用 pngBitmapEncoder 保存图像

xaml - 设置 datacontext 时如何摆脱设计时 XAML 错误 "Object reference not set to an instance of object"

c# - 在可拉伸(stretch)的 WPF 窗口中将两个控件布局在一条线上

c# - 绑定(bind)数据模板文本 block 标签

wpf - 绑定(bind)时出现方法或操作未实现错误

.net - 加载大量数据(40 列,2000 行)时,WPF 网格滚动缓慢且卡顿

c# - 访问静态资源中的属性

c# - 模板列中 WPF 数据网格单元格内的文本滚动

xaml - UWP XAML : How to get an auto-sized Grid with equal column widths

c# - 更新 "live"WPF Canvas (折线),当 PointCollection 发生变化时