我在使用一些自定義樣式的WPF中有無邊框窗口。我正在使用具有不同分辨率的多個顯示器來顯示應用程序。當應用程序從較小的分辨率移動到最大分辨率的顯示器時,應用程序未正確最大化,屏幕的某些區域顯示爲空白。我怎樣才能使它在所有決議上最大化?WPF無邊界窗口在不同分辨率下最大化問題
謝謝
我在使用一些自定義樣式的WPF中有無邊框窗口。我正在使用具有不同分辨率的多個顯示器來顯示應用程序。當應用程序從較小的分辨率移動到最大分辨率的顯示器時,應用程序未正確最大化,屏幕的某些區域顯示爲空白。我怎樣才能使它在所有決議上最大化?WPF無邊界窗口在不同分辨率下最大化問題
謝謝
嘗試使用WindowChrome類繪製窗口。該功能允許重繪窗口的非客戶區域。這意味着您可以將無邊框窗口作爲SingleBordered窗口進行操作。它解決了很多自定義窗口的問題。 如果你的目標.NET 4.5,只需鍵入:
<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" Height="350" Width="525">
<WindowChrome.WindowChrome>
<WindowChrome/>
</WindowChrome.WindowChrome>
<Grid>
</Grid>
</Window>
對於.NET低於4.5,您必須引用Microsoft.Windows.Shell.dll然後用例如shell:WindowChrome獲得相同的結果。
也不要使用
WindowState = Windows.WindowState.Maximized
代替鍵入例如
<Button x:Name="buttonMaximize" Command="{Binding Source={x:Static SystemCommands.MaximizeWindowCommand}}">
它們使用默認的Windows動作,通過動畫和完美的縮放來最大化窗口。
這應該解決它。
<Window WindowState="Maximized">
</Window>
不,它不工作。只有主屏幕顯示最大化的應用程序屏幕。但是當我拖動到具有更大分辨率的二級屏幕時。它不會工作 –
不會工作。但嘗試將其拖動到輔助屏幕,然後關閉該窗口並重新打開它。那麼它會最大化權利? – Tan
不,如果我們關閉窗口並重新打開它,它不起作用。請看看以下問題,我正面臨着https://connect.microsoft.com/VisualStudio/feedback/details/540394/maximized-window-does-not-cover-working-area-after-screen-setup -更改 –
我有這個在我的應用程序上工作。您可能會在窗口的某個位置設置絕對寬度和高度,以防止它在較大的顯示器上生長。 – kenjara
我在WPF中使用無邊框窗口,我使用Native方法來最大化屏幕。這可能是一個問題嗎? –
我假設你的意思是WindowStyle =「None」。我用這個,然後實現了我自己的雙擊事件,並最大化自定義窗口標題按鈕,以最大限度地發揮。他們仍然只調用Me.WindowState = Windows.WindowState.Maximized。 – kenjara