我正在尝试使用SizeToContent =" WidthAndHeight"和WindowState ="最大化"同时。我试图在加载期间以及MainWindow的构造函数中更改窗口的状态,但没有运气。
<Window x:Name="MainWindowMy" x:Class="ManyTabControls.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="Pressure Vessel Design" WindowState="Maximized" SizeToContent="WidthAndHeight" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Auto" Loaded="MainWindowMy_Loaded" >
<Window.Resources>
我有一个带有很多标签的TabControl,在设计查看器中,标签向下流入不同的行。当我更改TabControl的宽度以使选项卡位于同一行时,它们会超出MainWindow的边界。如果我设置Mainwindow的宽度,那么MainWindow将具有恒定的宽度。这意味着如果监视器的大小变小,那么MainWindow中比屏幕大的部分将不会显示。我希望我能说清楚。
答案 0 :(得分:0)
感谢尤金,我明白了。我已经尝试在运行时更改MainWindow
的状态,但它没有成功(MainWindow
没有占据整个屏幕)。
正如Eugene所提到的,原因是这些属性相互冲突(SizeToContent
获得优先权)所以我必须关闭一个以便能够打开另一个。因此,要解决问题:
private void MainWindowMy_Loaded(object sender, RoutedEventArgs e)
{
this.SizeToContent = System.Windows.SizeToContent.Manual;
this.WindowState = System.Windows.WindowState.Maximized;
}
这不是最优雅的做法,但它现在可以达到目的。但是,如果有人能提出更优雅的解决方案,我们将不胜感激。