Почему ширина флажка в моем WPF-приложении отличается между XP и Win7? - PullRequest
2 голосов
/ 23 января 2012

Я делаю 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

1 Ответ

3 голосов
/ 23 января 2012

Вы можете заставить WPF использовать тему Windows Vista / 7 Aero в XP. Это одно из забавных следствий того факта, что WPF самостоятельно реализует все графические функции системы, используя векторную графику.

Как это сделать .

Однако следует помнить, что приложение будет выглядеть немного неуместно в Windows XP (со всеми современными стеклянными кнопками и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...