我想知道WPF中是否有一种自动控制大小的方式。
我的意思是,一种根据用户屏幕分辨率自动调整元素大小的方法,而无需在代码中进行定义。
谢谢。
我想知道WPF中是否有一种自动控制大小的方式。
我的意思是,一种根据用户屏幕分辨率自动调整元素大小的方法,而无需在代码中进行定义。
谢谢。
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="..." (set your margin to control the position)
针对使用网格的灵活布局:
<Grid>
ColumnDefinition.Width="*"
RowDefinition.Height="*"
对于被面板包围的中心区域,或填充行/列的其余部分:
<DockPanel>
<ViewBox>
还有许多其他的。
如果您希望您的控件在屏幕上根据用户的Windows显示设置(如DPI)变得更大或更小,这将自动发生。 如果用户使系统图标和字体变大,您的文本、图标、字体等也会变大。
如果您想将屏幕上对象的大小与特定的系统设置绑定,您可以绑定到SystemParameters和SystemFonts类中的属性,例如:
SystemFonts.CaptionFontSize
SystemFonts.MenuFontSize
SystemFonts.IconFontSize
SystemFonts.StatusFontSize
SystemParameters.IconHeight
SystemParameters.IconVerticalSpacing
SystemParameters.MaximizedPrimaryScreenHeight
这些设置大约有75个。通常情况下,你不需要使用它们,因为WPF根据DPI对你的对象大小进行的普通调整通常已经足够了。
通常情况下,你不希望强制屏幕上的对象具有特定数量的像素,因为即使最终用户将Windows配置为显示大号元素,它们在高分辨率屏幕上也会显得非常小。这并不是一件好事。这里唯一的例外是,如果你想捕获特定分辨率屏幕的位图截图,那么你可以按如下方式设置大小:
control.Height =
desiredHeightInActualScreenPixels
* System.Windows.SystemParameters.MenuHeight
/ System.Windows.Forms.SystemInformation.MenuHeight;