Ric*_*ard 5 c# wpf xaml window width
我有一个在 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>
Run Code Online (Sandbox Code Playgroud)
问题是,当创建窗口并将其显示在屏幕上时,它始终大于我在宽度定义中指定的 70 像素。宽度大概是80-90像素。我的宽度属性被忽略。窗口内的所有内容也不大于 70 像素。
即使当我尝试使用手柄调整窗口大小时,它也不会让我将其大小调整到特定宽度以下。是否有某种原因 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>
Run Code Online (Sandbox Code Playgroud)
编辑
要使窗口宽度为 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>
Run Code Online (Sandbox Code Playgroud)
由于 70 的宽度非常小,因此您不能同时具有最小化和最大化按钮以及关闭按钮。