我需要讓我的應用程序如下(C#WPF應用程序):啓用最大化,最小化和WPF還原窗口(手動調整大小是禁用)
- 擁有1024 * 768
- 正常大小用戶可以最大限度的應用
- 用戶可以最大限度地減少應用程序
- 用戶可以恢復
- 用戶無法手動draging其邊框調整應用程序的應用(1024 * 768)。
沒有任何ResizeMode
滿足所有這些要求。有什麼辦法可以做嗎?
我需要讓我的應用程序如下(C#WPF應用程序):啓用最大化,最小化和WPF還原窗口(手動調整大小是禁用)
沒有任何ResizeMode
滿足所有這些要求。有什麼辦法可以做嗎?
您可以偵聽Window.SizeChanged事件,並在處理程序內部手動將寬度和高度設置回1027和768.它仍然允許用戶拖動窗口的邊緣來調整大小,但是隨後窗口返回到它的設置尺寸。這樣做的缺點是,無論用戶何時嘗試調整大小,窗口都會「癲癇發作」 - 而不是最美麗的事情。正常工作最大限度地減少和最大化工作。
謝謝,我已經試過那個。我遇到的閃爍(「癲癇」)讓我在一開始就留下了這個想法。 – Nir 2010-02-02 14:23:57
我終於找到了一個相對體面的解決方案。
想法是覆蓋窗口的事件,取消最小/最大約束並刷新它。
如果沒有最大化的窗口,我們簡單地套用背面的最小/最大約束
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Maximized)
{
MinWidth = 0;
MinHeight = 0;
MaxWidth = int.MaxValue;
MaxHeight = int.MaxValue;
if (!m_isDuringMaximizing)
{
m_isDuringMaximizing = true;
WindowState = WindowState.Normal;
WindowState = WindowState.Maximized;
m_isDuringMaximizing = false;
}
}
else if (!m_isDuringMaximizing)
{
MinWidth = 1024;
MinHeight = 768;
MaxWidth = 1024;
MaxHeight = 768;
}
base.OnStateChanged(e);
}
我知道5年後我問了這個問題,但是這裏是什麼'm_isDuringMaximizing'? – 2015-06-30 01:03:03
通過添加窗口爆破性質'身高=「1024」 WIDTH =「768」 ResizeMode =「CanMinimize」'你可以實現除第2點以外的所有內容。 – ChrisF 2010-02-01 12:29:34
您能否告訴我們爲什麼您要將窗口固定在某個尺寸?它可以幫助我們想出一些解決方案。 – 2010-02-02 11:52:18
我正在研究呈現醫學圖像的醫療計劃。傳統程序的固定大小爲1024 * 768。因此,對於老客戶,我們需要將其作爲基本解決方案進行維護。 我們希望能夠選擇最大化窗口,以便我們可以在某些分辨率下檢查程序,無需測試所呈現圖像的質量,以防用戶將應用程序調整爲非標準尺寸 – Nir 2010-02-02 14:22:30