Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WindowsState和SizeToContent不能同时工作_C#_Wpf - Fatal编程技术网

C# WindowsState和SizeToContent不能同时工作

C# WindowsState和SizeToContent不能同时工作,c#,wpf,C#,Wpf,我正在尝试同时使用SizeToContent=“WidthAndHeight”和WindowsState=“Maximized”。我试图在加载期间以及在主窗口的构造函数中更改窗口的状态,但没有成功 <Window x:Name="MainWindowMy" x:Class="ManyTabControls.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x

我正在尝试同时使用SizeToContent=“WidthAndHeight”和WindowsState=“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,有很多选项卡,在design viewer中,选项卡向下流动到不同的行中。当我更改TabControl的宽度,使选项卡在同一行中时,它们会超出主窗口的边界。如果我设置主窗口的宽度,那么主窗口的宽度是恒定的。这意味着,如果显示器的大小变小,那么主窗口中比屏幕大的部分将不会显示。我希望我能说清楚。

谢谢尤金,我明白了。我已经尝试在运行时更改我的
MainWindow
的状态,但没有成功(
MainWindow
没有占据整个屏幕)

正如Eugene提到的,原因是这些属性相互冲突(
SizeToContent
获得优先级),因此我必须关闭一个属性才能打开另一个属性。因此,要解决这个问题:

private void MainWindowMy_Loaded(object sender, RoutedEventArgs e)
{
    this.SizeToContent = System.Windows.SizeToContent.Manual;
    this.WindowState = System.Windows.WindowState.Maximized;
}

这不是最优雅的方式,但现在它已经达到了目的。但是,如果有人能想出一个更优雅的解决方案,我们将不胜感激。

您希望
最大化
大小内容
如何协同工作?它们相互矛盾。你预计会发生什么?会发生什么?“不走运”不是一个好的问题陈述。当窗口被加载时,它不会被最大化。为什么它不能拥有内容的大小并在加载时最大化。正如您所看到的,这两个属性是共存的!一个窗口如何获得比另一个窗口的优先级。
最大化
意味着无论其内容如何,窗口都必须填满整个屏幕空间,
SizeToContent
意味着无论其大小,窗口都必须缩小或增大其大小以适应内容。它们是完全不兼容的,因为它们在相同的情况下表现不同,但由于布局计算的顺序
SizeToContent
具有更高的优先级(或某种优先级)。它们应该如何同时工作?例如,你有一个控件100x100像素,你的屏幕是1000*500,布局应该是什么样子?我试图实现的是,当我在design viewer中时,我希望能够查看选项卡控件、网格等的所有内容,一旦我启动应用程序,窗口将填满整个屏幕。我有两个选择,一个是设置窗口的宽度和高度,但如果屏幕变小,它就可以离开屏幕。另一个选项是在design viewer中使用内容大小,应用程序启动后,它将忽略该选项并应用WindowsState=“Maximized”。或者我只想应用WindowsState=“Maximized”,