我制作了一个WPF应用程序,带有一个窗口一个Grid和一个按钮。在SizeChanged事件窗口中,我使用scaleTransform我的Grid来最大化它的大小,但保持高宽比。为什么我的鼠标在WPF中移动按钮时变得不稳定
当我将鼠标移动到按钮上时,热卷会像您期望的那样发生,但鼠标停顿时间不到半秒钟,这不是一个大问题,但似乎有些不对劲。
编辑我想我从未真正问过一个问题。我想知道的是。这是正常的行为,还是在我如何做这件事上有什么问题。
//Store the initial size of the Grid
double GridStartWidth;
double GridStartHeight;
public MainWindow()
{
InitializeComponent();
//Get the values for the initial size of Grid
GridStartWidth = MainGrid.Width;
GridStartHeight = MainGrid.Height;
}
private void myMainWindow_SizeChanged(object sender, SizeChangedEventArgs e)
{
double min = Math.Min(this.Height/GridStartHeight, this.Width/GridStartWidth);
Transform tr = new ScaleTransform(min, min, .5, .5);
MainGrid.LayoutTransform = tr;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown();
}
不知道,如果你需要XAML中,但在这里它是
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Name="myMainWindow"
Width="1280" Height="1024" SizeChanged="myMainWindow_SizeChanged" AllowsTransparency="True" Background="#4FFFFFFF" WindowStyle="None" WindowState="Maximized">
<Grid Name="MainGrid" Background="#FF8DC78D" Width="800" Height="600">
<Button Content="Exit" Height="23" HorizontalAlignment="Left" Margin="13,12,0,0" Name="ExitButton" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
编辑#2我只是试图复制这个问题从头开始,并测试它一步一步一步添加功能。当我将窗口状态设置为最大化时,会出现问题。
编辑#3另一个测试我删除了允许透明属性,并将背景设置为纯色,并且它工作正常。所以这个问题与透明背景的Maximized窗口有关。这有意义吗?
你能澄清一下吗?当我移动按钮的鼠标时,热卷会像你期望的那样发生?另外,你如何调整最大化的窗口? –
我在初始调整大小后没有调整大小,我这样做的原因是它会匹配用户屏幕。我的意思是说,只要我在按钮上移动鼠标......不知道为什么我没有先说这个,现在编辑。 –
不过,我不明白你在做什么以及如何将鼠标移动到仅包含点击处理程序和包含窗口大小更改处理程序的按钮上方,这会使鼠标“失速”。当鼠标移动到按钮上时,没有显示任何代码。无论如何,你的第三个编辑似乎包含答案。 –