我製作了一個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窗口有關。這有意義嗎?
你能澄清一下嗎?當我移動按鈕的鼠標時,熱卷會像你期望的那樣發生?另外,你如何調整最大化的窗口? –
我在初始調整大小後沒有調整大小,我這樣做的原因是它會匹配用戶屏幕。我的意思是說,只要我在按鈕上移動鼠標......不知道爲什麼我沒有先說這個,現在編輯。 –
不過,我不明白你在做什麼以及如何將鼠標移動到僅包含點擊處理程序和包含窗口大小更改處理程序的按鈕上方,這會使鼠標「失速」。當鼠標移動到按鈕上時,沒有顯示任何代碼。無論如何,你的第三個編輯似乎包含答案。 –