2011-05-21 253 views
2

當在XAML設計器中設計WPF對話框窗口(用戶不​​能手動調整窗口大小)時,窗口會自動調整大小以適應其內容,並且一切正常。但是當我運行我的應用程序時,窗戶變得很大,並且有很多空的空間。自動調整WPF窗口大小

我知道這是WPF的一個「功能」,可以通過設置SizeToContent標記來「固定」,但當我這樣做時會出現另一個問題:例如,如果窗口包含文本框,並且用戶輸入數據溢出可見區域,窗口將伸展以適應它。這發生在列表框,樹視圖,你的名字。

我只想讓Visual Studio找出它在設計時顯示的理想窗口大小,然後在運行時將該窗口設置爲該大小,並且之後不更改大小。看起來這應該是一件容易的事情。

編輯:找出問題的一部分:我在網格中設置了控件,列的寬度設置爲「自動」,這就是爲什麼一切都在調整大小。

回答

1

嘗試將窗口的高度和寬度設置爲自動。另外,刪除SizeToContent屬性。這應該解決它。

+0

這就是我現在設定的,實際上。 – 2011-05-21 01:39:26

+0

所以你沒有SizeToContent? – kevindaub 2011-05-21 01:55:41

+0

對,它被設置爲其自動值「手動」。 – 2011-05-21 01:58:39

1

我不認爲這是這個東西也就是通常要求所以它可能不容易做到,一種方法我能想到會自動SizeToContent來啓動和處理Loaded事件和設置的:

Height = ActualHeight; 
Width = ActualWidth; 
SizeToContent = System.Windows.SizeToContent.Manual; 
2

使用視圖框

視框在WPF一個非常有用的控制。如果只是縮放以適應可用大小的內容。它不會調整內容的大小,但會轉換它。這意味着所有的文本大小和線寬都被縮放。它與將圖像或路徑上的Stretch屬性設置爲Uniform時的行爲大致相同。

雖然它可以用來適應任何類型的控件,但它通常用於2D圖形,或者將用戶界面的可伸縮部分放入屏幕區域。

<Viewbox> 
<Enter your code/> 
</Viewbox>