前几天碰到了一个问题,
从A窗口双击击某个图片 ,弹出B窗体,按照常理,我们都想看到B窗体的全貌。
但是,让人郁闷的事情发生了,B躲到了A的下面。
1.窗体的属性是
<Window x:Class="WPF.Edit"
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"
Title="PersonalInfoEdit" Height="458" Width="630"
WindowStartupLocation="CenterOwner" WindowStyle="None" AllowsTransparency="True" Background="{x:Null}" >
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"
Title="PersonalInfoEdit" Height="458" Width="630"
WindowStartupLocation="CenterOwner" WindowStyle="None" AllowsTransparency="True" Background="{x:Null}" >
也没有特异之处,
2.使用Topmost=true 实现的效果又不是我想要的。
终于今天有时间弄它了,在 110行,一个覆盖全窗体的Grid中,MouseLeftButtonDown="Window_MouseLeftButtonDown冒出来了,此功能是想实现不论在哪一个地方拖拽窗体,都能使窗体移动,很好的一个功能。
死也死在这个功能上,因为点击完图片弹出B窗体后,又执行了一遍此功能,将焦点又从B窗体夺了回来。
到这里,问题也就解决了,修改下原画面,将窗体移动功能的鼠标拖拽位置改为最顶和最底两条,就行了。
下面的方法就是拖动窗体的方法。
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (e.ButtonState == MouseButtonState.Pressed )
{
this.DragMove();
}
}