Ari*_*jee 16
包括MinHeight="MinSize" MinWidth="MinSize"在该<Window>部分内
MinSize =所需的整数值ex 400/350等
<Window x:Class="IOTA_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
WindowState="Maximized"
MinHeight="400" MinWidth="650">
Run Code Online (Sandbox Code Playgroud)
den*_*ver 10
我知道这是事后几年,但我最近碰到了这个问题,因为我正在处理类似的问题.这就是我解决它的方式.解决方案特定于我的问题,但可以改变以获得各种所需的调整大小行为.
首先设置窗口,使其最初调整大小以适合其内容.
<Window ...
SizeToContent="WidthAndHeight" >
Run Code Online (Sandbox Code Playgroud)
接下来,我设置每个嵌入式控件,以便报告所需的宽度和高度.大多数内置控件都可以为您完成此操作.您可以通过覆盖MeasureOverride来执行自定义控件,也可以只为控件设置宽度和高度.使其成为您希望控件获得的最小大小.
<MyControl Name="_MyControlName" Width="640" Height="480" />
Run Code Online (Sandbox Code Playgroud)
不要担心这些"硬"编码值会影响控件的行为.我们下一步处理.现在,当窗口显示时,它将自动调整自身以适合您的控件.
接下来订阅窗口加载的事件.
<Window ...
SizeToContent="WidthAndHeight" Loaded="Window_Loaded" >
Run Code Online (Sandbox Code Playgroud)
在窗口加载事件中,您可以调整窗口的大小调整行为及其中的控件.你可以使它控制可以调整大小.您可以将窗口的最小大小设置为刚刚放置的大小.这里的优点是您只需允许布局系统为您找到一个好的布局.你想利用它的工作.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// We know longer need to size to the contents.
ClearValue(SizeToContentProperty);
// We want our control to shrink/expand with the window.
_MyControlName.ClearValue(WidthProperty);
_MyControlName.ClearValue(HeightProperty);
// Don't want our window to be able to get any smaller than this.
SetValue(MinWidthProperty, this.Width);
SetValue(MinHeightProperty, this.Height);
}
Run Code Online (Sandbox Code Playgroud)
您在Window_Loaded方法中放置的内容取决于您尝试完成的行为.
希望这可以帮助其他人节省时间.