我制作了一个 WPF 应用程序,带有一个窗口、一个网格和一个按钮。在窗口 SizeChanged 事件中,我 scaleTransform 我的 Grid 以最大化它的大小但保持纵横比。
每当我将鼠标移到按钮上时,热轨就会如您所料发生,但鼠标停顿不到半秒钟,这不是一个大问题,但似乎有些不对劲。
编辑 我想我从来没有真正问过问题。我想知道的是。这是正常行为,还是我这样做有什么问题。
//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另一个测试我删除了 Allow Transparency 属性,并将背景设置为纯色,它工作正常。所以问题与具有透明背景的最大化窗口有关。这有意义吗?