windowState和SizeToContent不能同时工作
本文关键字:工作 不能 SizeToContent windowState | 更新日期: 2023-09-27 18:20:04
我正在尝试同时使SizeToContent="WidthAndHeight"和WindowState="Maximized"。我试图在加载期间以及在主窗口的构造函数中更改窗口的状态,但没有成功。
<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的宽度,使选项卡在同一行时,它们就会超出主窗口的边界。如果我设置主窗口的宽度,那么主窗口将具有恒定的宽度。这意味着,如果监视器的大小变小,那么主窗口中比屏幕大的部分将不会显示。我希望我说清楚了。
谢谢Eugene,我有这个主意。我已经尝试在运行时更改MainWindow
的状态,但没有成功(MainWindow
没有占据全屏)。
正如Eugene所提到的,原因是这些属性相互冲突(SizeToContent
获得优先级),所以我必须关闭其中一个才能打开另一个。因此,要解决这个问题:
private void MainWindowMy_Loaded(object sender, RoutedEventArgs e)
{
this.SizeToContent = System.Windows.SizeToContent.Manual;
this.WindowState = System.Windows.WindowState.Maximized;
}
这不是最优雅的方式,但它目前符合目的。然而,如果有人能想出一个更优雅的解决方案,我们将不胜感激。