首页 > 解决方案 > 窗口左侧位置失败

问题描述

这个问题对我来说既简单又出乎意料。我有一扇窗

<Window x:Class="AppWorkFlowExecutor.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:AppWorkFlowExecutor"
            xmlns:fa="http://schemas.fontawesome.io/icons/"
            mc:Ignorable="d"
            Title="WF Executor" TextBlock.TextAlignment="Center" 
            FontFamily="Segoe UI" FontSize="14" PreviewMouseDown="Window_PreviewMouseDown"
            WindowStyle="None" AllowsTransparency="False" ResizeMode="CanResizeWithGrip" Margin="0"
            Closing="Window_Closing" KeyDown="Window_KeyDown" BorderThickness="1"  SizeChanged="Window_SizeChanged" >

我希望它从左上角开始。但是结果是右边多了一点

在此处输入图像描述

在图片中,蓝色是我的背景。所以我想在某个地方我以某种方式移动了它。但是当我打印我得到的坐标时

在此处输入图像描述 这是正确的。显然我对最高价值没有问题

标签: c#wpfwindowposition

解决方案


见 MSDN:

设置 GlassFrameThickness 属性以指定 Windows Aero 玻璃框架延伸到窗口客户区的量。默认情况下,玻璃框架将使用系统值来模拟标准窗口的外观。如果启用了 Windows Aero,则标准标题按钮(最大化、最小化、关闭)将被启用和交互。要制作没有玻璃框架的自定义窗口,请将此厚度设置为统一值 0。这将禁用标准标题按钮。

将玻璃框架厚度设置为 0。我还添加Left="0" Top="0"到您的 XAML:

<Window x:Class="AppWorkFlowExecutor.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:AppWorkFlowExecutor"
            xmlns:fa="http://schemas.fontawesome.io/icons/"
            mc:Ignorable="d"
            Title="WF Executor" TextBlock.TextAlignment="Center" 
            FontFamily="Segoe UI" FontSize="14" PreviewMouseDown="Window_PreviewMouseDown"
            WindowStyle="None" AllowsTransparency="False" ResizeMode="CanResizeWithGrip" Margin="0" Left="0" Top="0"
            Closing="Window_Closing" KeyDown="Window_KeyDown" BorderThickness="1"  SizeChanged="Window_SizeChanged" >
<WindowChrome.WindowChrome>
    <WindowChrome GlassFrameThickness="0"></WindowChrome>
</WindowChrome.WindowChrome>

推荐阅读