我有一个WPF应用程序。为了在所有屏幕尺寸上显示全屏,我实现了MinHeight,MinWidth& HorizontalAlignment =“Stretch”VerticalAlignment =“Stretch”在Window&容器也是。当应用程序在低分辨率屏幕上运行时,我遇到了一些问题。窗口从屏幕右侧切割 - 这不会在右上角显示最小,最大,关闭btns。
如果我在其中添加布局代码,则窗口在所有分辨率中都是正确的,但它会在菜单栏上方和下方结束时生成空白区域。在移除时,它们没有空间且一切都很好,但右侧在低分辨率屏幕中被切断。使用ViewBox,布局上方和下方的空间。我的XML代码如下:
CODE UPDATED
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- MENU BAR -->
<Menu Grid.Row="0" x:Name="myMnus" VerticalAlignment="Top" Cursor="Hand" HorizontalAlignment="Stretch" IsMainMenu="True" Grid.ColumnSpan="2">
.............
</Menu>
<ToolBarTray HorizontalAlignment="Stretch" Background="White" Margin="0,19,114,0" VerticalAlignment="Top" Grid.ColumnSpan="2" >
..............
<ToolBarTray>
<TabControl Grid.Row="1" Name="tabControl1" HorizontalAlignment="Left" Margin="0,3,0,0" VerticalAlignment="Top"
TabStripPlacement="Bottom" Grid.RowSpan="2" BorderThickness="4,25,4,1" FontSize="13">
</TabControl>
<TabControl Grid.Row="2" Name="tabControl4" HorizontalAlignment="Left" Margin="0,323,0,0" VerticalAlignment="Stretch"
TabStripPlacement="Bottom" BorderThickness="4,25,4,1" FontSize="13" Background="White" Width="227">
</TabControl>
<TabControl TabStripPlacement="Bottom" MinHeight="415" MinWidth="480" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Row="1" Grid.Column="1" Name="tabChildContainer" Margin="227,3,207,0" BorderThickness="4,25,4,1" Grid.RowSpan="2" >
</TabControl>
</Grid>
我认为通过在HorizontalAlignment和VerticalAlignment中使用Stretch以及MinWidth和MinHeight,它会在水平和垂直方向占用所有可用空间。但是tabChildContainer TabControl没有根据代码进入它应该去的右端。
答案 0 :(得分:2)
这是您的问题开始的地方:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="762.976"/>
<ColumnDefinition Width="751.024"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
无论何时在UI中设置精确的像素大小,您都会要求确切地提出这些问题。为应用程序的各个部分设置确切的大小更像是一个WinForms的东西...... WPF有很多控件可以为你调整内容的大小...你正在使用一个,Grid
......只是不正确。 / p>
其次,在整个用户界面上使用ViewBox
非常不寻常 ... 不会帮助您。最好的办法是简单地删除它和所有硬编码维度,并充分利用"*"
中的"Auto"
和Grid
值。当控件以这种方式调整自身大小(或Grid
调整大小)时,用户使用的分辨率无关紧要。