Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据Windows设计指南建议调整WPF控件的大小_Wpf_User Experience_Ui Guidelines - Fatal编程技术网

根据Windows设计指南建议调整WPF控件的大小

根据Windows设计指南建议调整WPF控件的大小,wpf,user-experience,ui-guidelines,Wpf,User Experience,Ui Guidelines,如何配置WPF以使其控件使用Microsoft建议的大小 例如,a的高度应为23像素,包括1像素的透明边框。如何实现透明边界按钮。边框笔刷控制可见边框 另一个例子是单线,它应该是23像素高 我必须手工制作所有东西吗?或者有没有办法使控件默认为本机Windows用户体验 更新:以下是一些差异的视觉效果 WPF控件: 标准Windows控件:(从中,例如在记事本中,单击文件>打开) 这不是一个完美的比较,因为在“公用项”对话框中,“文件名”框是一个组合框,而不是文本框。我试着比较打印设置和打印

如何配置WPF以使其控件使用Microsoft建议的大小

例如,a的高度应为23像素,包括1像素的透明边框。如何实现透明边界<代码>按钮。边框笔刷控制可见边框

另一个例子是单线,它应该是23像素高

我必须手工制作所有东西吗?或者有没有办法使控件默认为本机Windows用户体验


更新:以下是一些差异的视觉效果

WPF控件:

标准Windows控件:(从中,例如在记事本中,单击文件>打开)

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

在所有记事本对话框中,按钮都是一致的,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>

有一个默认样式,不确定它是否为windows标准,您可以在一个位置配置每种类型的默认样式。我倾向于在App中这样做。xaml BorderBrush可以设置为透明,BorderThickness可以设置为1像素,但可能我没有注意到这点。@kenny Windows指南要求两个边框:一个可见边框(内置于控件中),周围是一个不可见边框。据我推断,不可见边框旨在提供更大的点击区域,同时将按钮保持在两个像素以下,以便在控件之间留出更多空间,以减少混乱感<代码>边框笔刷设置可见边框。据我所知,没有任何属性可以处理不可见边框。我想你是对的,它们不是windows标准。也许最好还是坚持使用Winforms。已经有人,甚至微软,可能已经建立了一套默认的样式,使他们这样做。我用过的WPF项目大多都试着让它看起来更时尚,而“旧的”标准窗口“外观”是什么样子的。默认样式有什么问题?有一个默认样式,不确定它是否为windows标准,您可以在一个位置配置每种类型的默认样式。我倾向于在App中这样做。xaml BorderBrush可以设置为透明,BorderThickness可以设置为1像素,但可能我没有注意到这点。@kenny Windows指南要求两个边框:一个可见边框(内置于控件中),周围是一个不可见边框。据我推断,不可见边框旨在提供更大的点击区域,同时将按钮保持在两个像素以下,以便在控件之间留出更多空间,以减少混乱感<代码>边框笔刷设置可见边框。据我所知,没有任何属性可以处理不可见边框。我想你是对的,它们不是windows标准。也许最好还是坚持使用Winforms。已经有人,甚至微软,可能已经建立了一套默认的样式,使他们这样做。我用过的WPF项目大多都试着让它看起来更时尚,而“旧的”标准窗口“外观”是什么样子的。默认样式有什么问题?它们是标准的。
foreach (Control control in controls.Children) {
    control.Margin = new Thickness(0, 10, 0, 10);
    control.VerticalContentAlignment = VerticalAlignment.Center;
}