我有一个在 XAML 中定义的 WPF 窗口,如下所示:
<Window x:Class="com.some.company.window"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="My Cool Window"
x:Name="CoolWindow"
Height="435"
Width="70"
MinWidth="70"
MaxWidth="70"
Left="{PropertyState Default=0}"
Top="{PropertyState Default=0}"
Initialized="InitializeWindow"
ResizeMode="NoResize"
Style="{DynamicResource DefaultWindow}">
.....
.....
</Window>
问题是当窗口被创建并显示在屏幕上时 - 它总是大于我在宽度定义中指定的 70 像素。宽度大概是 80-90 像素。我的宽度属性被忽略。 Window 内的所有内容也不大于 70 像素。
即使我尝试使用 handle 调整窗口大小,它也不会让我将其调整为低于特定宽度。有什么原因 WPF 不允许我将窗口的宽度设置得更小吗?每个窗口都有隐藏的最小宽度值吗?我将如何解决这个问题?
编辑:
当我将 WindowsStyle="None"添加到 Window 属性时,宽度正确设置为 70 像素。但是,这不是我想要的 Window 样式。
谢谢
最佳答案
您已将 MinWidth
设置为 70,因此 Window
的大小不能小于该值。顺便说一句,因为控制箱的宽度似乎有 132 的最小限制。
如果我们设置 WindowStyle="none"
去除标题和控制框,我们可以使 Window
更小。
<Window x:Class="WpfApplicationUnleashed.Window1"
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" xmlns:local="clr-namespace:WpfApplicationUnleashed"
Title="" WindowStyle="None" Width="70">
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
</Grid>
</Window>
编辑
要使窗口宽度为 70,而关闭按钮、标题文本仍然可见且不调整大小,请使用以下命令:
<Window x:Class="WpfApplicationUnleashed.Window1"
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" xmlns:local="clr-namespace:WpfApplicationUnleashed"
Title="My Window" WindowStyle="ToolWindow" Width="70" ResizeMode="NoResize">
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
</Grid>
</Window>
由于 70 是一个非常小的宽度,因此您不能将最小化和最大化按钮与关闭按钮一起使用。
关于C# WPF 窗口宽度、MaxWidth、MinWidth 被忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5327089/