我正在尝试创建一个可在多种屏幕尺寸上扩展的全屏WPF应用程序。但是,我发现,当程序处于不同的屏幕尺寸时,窗口元素不会缩放并正确定位。
即。在VS2013中
即。运行时
如何让程序相应扩展?例如,我希望按钮位于屏幕的左侧或右侧,列表框可以向上扩展以填满屏幕。
到目前为止,这是我的代码:
<Window x:Class="FYP.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" WindowStartupLocation="CenterScreen" WindowState="Maximized">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Button Content="View Messages" Grid.Column="1" HorizontalAlignment="Left" Margin="203,20,0,0" VerticalAlignment="Top" Width="97" Name="ViewMessagesButton"/>
<Button Content="Log Out" Grid.Column="1" HorizontalAlignment="Left" Margin="305,20,0,0" VerticalAlignment="Top" Width="65" Name="LogOutButton"/>
<TextBlock HorizontalAlignment="Left" Margin="20,20,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="20" Name="DateTimeTextBlock"/>
<ListBox HorizontalAlignment="Left" Height="434" Margin="20,60,0,0" VerticalAlignment="Top" Width="350"/>
<ListBox HorizontalAlignment="Left" Height="135" Margin="20,60,0,0" VerticalAlignment="Top" Width="350" Grid.Column="1"/>
<ListBox HorizontalAlignment="Left" Height="278" Margin="20,216,0,0" VerticalAlignment="Top" Width="350" Grid.Column="1"/>
</Grid>
</Window>
答案 0 :(得分:1)
您的问题是您已为所有控件设置了具体尺寸。删除控件的宽度和高度,并按照您想要的方式设置边距。
答案 1 :(得分:1)
移除宽度和高度,并将水平和垂直对齐设置为拉伸。
答案 2 :(得分:1)
如果您确实希望对象向上或向下缩放(而不是调整大小),并且您希望排列的宽高比保持最初的排列方式,则应使用WPF's ViewBox控件。