18

在带有 VS2012 RTM 的 Windows 8 RTM 中,我注意到我的 WPF 应用程序给了我变形的单选按钮,所以我决定创建一个示例来看看我是否做错了什么。

这是整个 XAML 应用程序:

<Window x:Class="WpfApplication1.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" SizeToContent="WidthAndHeight">
    <Grid>
        <StackPanel Margin="20">
            <RadioButton Content="Option 1" GroupName="1"/>
            <RadioButton Content="Option 2" GroupName="2"/>
            <RadioButton Content="Option 3" GroupName="3"/>
        </StackPanel>
    </Grid>
</Window>

在这里,我将 DPI 设置设置为 100%,这实际上不是 Windows 8 中的默认设置(至少对于我的1920x1200屏幕来说不是)。你会看到单选按钮是完美的。

在此处输入图像描述

这是相同的应用程序,其 DPI 设置为 125%,这是我的屏幕分辨率的默认 DPI。

在此处输入图像描述

这里是 150%

在此处输入图像描述

您可以看到内圈不在外圈内居中,看起来很糟糕。带有单选按钮的系统应用程序很好 - 但我的 WPF 4.5 应用程序不是。再一次,这个示例应用程序是 100% RTM 位,并且在 Win 8 下从头开始。

它只是全部坏了还是有办法解决这个问题(除了坚持人们把 100% DPI 缩放)。

真的希望 Win8 能在高分辨率屏幕和像这样的缩放问题上大有帮助,但是一些简单的东西开箱即用:-(


编辑:提交连接错误https://connect.microsoft.com/VisualStudio/feedback/details/758368/radio-button-rendering-is-incorrect-on-windows-8-with-125-dpi-scaling-set

编辑:2012 年 8 月 29 日:

WPF 团队最近审查了此问题,并且不会解决此问题,因为此时团队正在关注影响最多 WPF 开发人员的错误。如果您认为这是错误解决的,请使用任何必要的支持详细信息重新激活此错误。

4

2 回答 2

1

WPF 中的所有内容都是样式化的。在默认系统样式的情况下,根据我自己的经验,它们有时会遇到这样的小问题。一个简单的修复,确认它是样式而不是操作系统本身是自己重新设置控件的样式,看看是否可以修复它。

您可以通过查看问题找到原始样式。这些将帮助您重建和/或解决问题

于 2013-01-11T16:06:42.263 回答
0

您可以尝试将堆栈面板放在视图框中..也许

于 2012-10-17T10:52:20.793 回答