自定义窗口与所有方面抓地力



最近我想用WPF为我的程序创建一个自定义窗口。

这是窗口的代码:

<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Test"
mc:Ignorable="d"
Title="Test" Height="450" Width="850" Background="Transparent" AllowsTransparency="True" WindowStartupLocation="CenterScreen" ResizeMode="CanResizeWithGrip" WindowStyle="None">     
</Window>

我想重新创建一个标题栏,我将WindowStyle设置为None

现在我需要用夹点调整窗口的大小。但是,如果我将WindowStyle设置为None,则"夹点"将不再工作。

尽管如此,我可以将ResizeMode设置为CanResizeWithGrip。然而,它只适用于"窗口"的右下角。

我想让Grip在窗户的所有侧面都能工作。我怎样才能做到这一点?

您可以设置WindowChromeResizeBorderThickness属性以使自定义窗口的大小可调整:

<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" WindowStyle="None">
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="0" ResizeBorderThickness="5" />
</WindowChrome.WindowChrome>
<Grid Background="Yellow">
<TextBlock>Resizable window...</TextBlock>
</Grid>
</Window>

最新更新