【问题标题】:windowState and SizeToContent do not work simultaneouslywindowState 和 SizeToContent 不能同时工作
【发布时间】:2014-08-31 11:07:14
【问题描述】:

我试图同时拥有 SizeToContent="WidthAndHeight" 和 WindowState = "Maximized"。我尝试在加载期间以及在 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 将不会显示。我希望我说清楚了。

【问题讨论】:

  • 您希望MaximisedSizeToContent 如何协同工作?他们是矛盾的。你预计会发生什么?
  • 会发生什么? “没有运气”不是一个好的问题陈述。
  • 加载窗口时,它不会最大化。为什么它不能具有内容的大小并在加载时最大化。如您所见,这两个属性是共存的!一个人如何优先于另一个人。
  • Maximised 表示窗口无论其内容如何都必须填满整个屏幕空间,SizeToContent 表示无论其大小如何,它都必须缩小或增加其大小以适应内容。它们完全不兼容,因为它们在相同情况下的行为不同,但由于布局计算的顺序,SizeToContent 具有更高的优先级(或某种)。他们应该如何同时工作?例如,您有 1 个 100x100 像素的控件,而您的屏幕是 1000*500,布局应该如何?
  • 我想要实现的是,当我在设计查看器中时,我希望能够查看 tabControls、网格等的所有内容,一旦我启动我的应用程序,窗口会填满整个屏幕。我有 2 个选项,一个为我的窗口设置宽度和高度,但如果屏幕变小,它可能会离开屏幕。另一种选择是在设计查看器中使用 Size to Content,一旦应用程序启动,它就会忽略它并应用 WindowState="Maximized"。或者我只想申请 Windowsstate="Maximized",

标签: c# wpf


【解决方案1】:

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

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

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

这不是最优雅的方式,但它现在可以达到目的。但是,如果有人能提出更优雅的解决方案,将不胜感激。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 2018-09-26
    • 2017-01-27
    • 2021-08-01
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多