2008-12-23 100 views
1

我已經使用WPF創建了一個用戶控件,並且我想將它添加到窗口中。我已經這樣做了,但是我無法讓我的控件的高度比它自己的xaml文件中的高度高。我的MaxWidth和MaxHeight都是無窮大的,但我無法使控件比xaml文件中的控件高。如何創建一個用戶控件,其大小可以大於WPF創建的大小

爲了解決這個問題,我必須讓所有的用戶控件變得非常龐大,這樣我才能夠將它們調整到我想要的大小。這看起來不正確,我不得不錯過一些東西。

回答

0

爲什麼你想讓你的控件的高度比它自己的XAML文件中的高度高?難道你不能只是刪除控件的XAML文件中的高度,並且當你在使用它的其他XAML文件(或代碼)中聲明時,明確設置控件的高度?

0

如果我刪除控件XAML文件中的高度和寬度,我就失去了將設計器用於我的用戶控件的能力。那麼簡短的答案,這確實解決了我的問題,但現在我不能使用設計器來進行用戶控制。看起來好像我沒有好轉。

0

問題可能是您的用戶控件中的內部控件不適合您的控件。嘗試在內部控件上設置Horizo​​ntalAlignment =「Stretch」或Width =「Auto」,或者嘗試綁定Width屬性。

0

好吧,經過一番進一步的調查,我錯過了。它的網格導致問題。如果我將Grid Width和Heigth設置爲Auto,那麼一切正常,但我失去了使用設計器的能力。

我已將所有對齊設置爲對網格及其控件進行拉伸。

因此總的來說,如果我設置Grid.Width = Auto和Grid.Height = Auto,那麼一切正常,但是當我這樣做時,我失去了使用設計器的能力。

+0

您可以改爲在Load事件中將屬性設置爲Auto。 – 2008-12-23 20:59:05

2

去除高度和寬度是要走的路。設計師(混合)有一些特殊的設計師寬度和高度屬性,他們可以用來設計,但不會設置運行時的高度。

xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" d:DesignWidth="412" d:DesignHeight="230" 

也就是說,這將是在窗口/用戶控件上方的XAML。 This應該有助於解釋事情。

0

我不知道VS設計器的任何寬度/高度屬性,如果這是你正在使用的。然而,我在xaml中非常有效地使用了MinWidth/MinHeight屬性來處理我認爲你正在描述的情況。