我在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像素。我的宽度属性被忽略。窗口内的所有内容都不大于70像素。
即使我尝试使用把手调整窗口大小,也不会让我将其调整到特定宽度以下。是不是有一些原因WPF不允许我将窗口的宽度设置得更小?每个窗口都有隐藏的最小宽度值吗?我怎么能绕过这个?
编辑: 当我在Window属性中添加WindowsStyle =“None”时,宽度正确设置为70像素。但是,这不是我想要的Window风格。
由于
答案 0 :(得分:4)
您已将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是一个非常小的宽度,你不能使用最小化和最大化按钮以及关闭按钮。
答案 1 :(得分:2)
70不是以像素为单位。 WPF适用于点,它实际上根据屏幕DPI(每英寸点数)将窗口大小调整为像素。
答案 2 :(得分:0)
通过添加WindowStyle =“ToolWindow”和ResizeMode =“NoResize”,我能够做我想做的事。这允许我保留标题栏和关闭按钮,同时允许窗口的宽度设置为70pt。