Visual Studio 2010 WPF Designer规模
问题描述:
我在Visual Studio 2010中做了简单的界面。当我启动应用程序时,一切都变得更大。屏幕截图上的红色方块代表启动的应用程序中按钮的大小(右侧)。 我错过了什么吗?如何解决它?Visual Studio 2010 WPF Designer规模
P.S. 在“Microsoft Expression Blend 4”中,相同的项目与编辑器中的尺寸完全相同。
<Window x:Class="WpfControlReview.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="120" Width="256" ResizeMode="NoResize">
<Grid>
<Button HorizontalAlignment="Stretch" Name="button1" VerticalAlignment="Stretch">
<StackPanel HorizontalAlignment="Stretch" Name="stackPanel1" VerticalAlignment="Center">
<Label IsHitTestVisible="False" Content="Select your options and press to commit" Name="label1" HorizontalContentAlignment="Center" FontSize="12" />
<StackPanel Name="stackPanel2" Orientation="Horizontal">
<Expander Header="Color" Name="expander1">
</Expander>
<Expander Header="Make" Name="expander2">
</Expander>
<Expander Header="Payment" Name="expander3">
</Expander>
</StackPanel>
</StackPanel>
</Button>
</Grid>
</Window>
答
我不确定这是否是一个错误,但这里的基本想法是,你已经为你的窗口指定了一个默认大小,但是因为控件想要变大(无论出于何种原因)它会自动调整窗口大小。可能是一个错误,Visual Studio如何使用指定的参数计算设计器中的窗口边框大小,因为它不正确地将其显示为比实际启动应用程序时小一些。
我宁愿建议你尽量避免指定高度/宽度。而是将Window设置为SizeToContent = WidthAndHeight。如果您需要使用控件的大小,请直接在控件上使用边距或MinWidth/MinHeight。
答
请记住,WPF会缩放用户界面。您是否玩过DPI设置?这将影响显示器上UI组件的呈现。尝试在辅助机器上运行应用程序以解决显示问题。
从MSDN:
分辨率无关的,并且 设备无关的图形。基本 单元在WPF 图形系统测量的是设备 独立象素,这是1 /第96个的 英寸,而不管实际的屏幕 分辨率,以及用于提供 基础分辨率无关 和设备无关的渲染。每个 与设备无关的像素自动调整 的比例以匹配系统的每英寸点数 (dpi)设置,它将渲染 。
一些代码将是非常有益~~~ – 2010-10-19 11:43:38
您必须使用64位的机器吧? – 2010-10-21 07:06:37
@Avatar是的。这有什么关系吗? – Hooch 2010-10-21 15:20:33