1

如何配置 WPF 以使其控件使用 Microsoft 推荐的大小?

例如,一个按钮应该是 23 像素高,包括一个 1 像素的透明边框。如何实现透明边框?Button.BorderBrush控制可见边框。

另一个例子是单行文本框,它应该是 23 像素高。

我必须手动设计所有样式吗?或者有没有办法让控件默认为原生 Windows 用户体验?


更新:这是一些差异的视觉效果。

WPF 控件:

WPF 控件

标准 Windows 控件:(来自Common Item Dialog,例如在记事本中,单击 File > Open)

通用项对话框控件

这不是一个完美的比较,因为在 Common Item Dialog 中,文件名框是 ComboBox,而不是 TextBox。我尝试比较“打印设置”和“打印”对话框(也来自记事本),但它们没有使用与打开文件对话框相同的大小按钮,甚至没有使用相同的字体。我一直忘记我在这里与微软打交道,而不是苹果。

在记事本的所有对话框中一致的按钮有一个区别,默认情况下 WPF 不匹配。如果按钮是默认按钮,则记事本中的边框会更粗。按钮的透明边框变为蓝色。对于记事本非默认按钮,您可以单击可见边框外的一个像素并仍然单击该按钮。这不适用于 WPF 按钮。

灵活性很好,但原生的它只是工作和看起来很棒的控件会非常好。如果有一个我不必考虑这些东西的插入式解决方案,那就太好了。

这是 WPF 控件的 XAML:

<StackPanel Name="controls" Margin="20">
    <TextBox Text="Default TextBox" />
    <TextBox Height="23" Text="TextBox with height 23" />
    <Button Content="Cancel" />
    <Button Height="21" Content="Cancel" IsDefault="True" />
</StackPanel>

和代码隐藏:

foreach (Control control in controls.Children) {
    control.Margin = new Thickness(0, 10, 0, 10);
    control.VerticalContentAlignment = VerticalAlignment.Center;
}
4

0 回答 0