2011-03-14 63 views
0

我正在Silverlight中工作。 創建了一個名爲TextBoxWithButton的新UserControl。 現在我想添加一個新的屬性到我的新控件稱爲TextBoxBackground。向主用戶控件公開內部依賴屬性

我這樣做:

public partial class TextBoxWithButton : UserControl 
{ 
     public Brush TextBoxBackground 
     { 
      get{return textBox.Background;} 
      set{textBox.Background = value;}   
     } 
} 

這工作得很好,但是當我嘗試動畫這個屬性我得到一個異常。 我認爲這是因爲TextBoxWithButton應該被定義爲一個依賴屬性,但我不知道如何做到這一點。

+0

@ Snowbear3附屬物?你確定 ?我幾乎肯定它是一個能夠參與動畫的依賴項屬性。 – 2011-03-14 16:52:11

+0

附加屬性只是特定類型的依賴屬性。無論是動畫,都可以,因爲您可以爲任何DP製作動畫。 – 2011-03-14 16:54:06

+0

當然,這是'dep'屬性。這是一個從我身邊的思考:( – Snowbear 2011-03-14 18:26:19

回答

0

你需要把它變成一個依賴屬性。有關實施DP的詳細信息,請參閱Custom Dependency Properties

將此設置作爲依賴項屬性後,將您的(內部)TextBox.Background綁定到「本地」TextBoxBackground屬性(在xaml中)。然後,您可以根據需要爲UserControl的TextBoxBackground屬性設置動畫,並且「內部」屬性也會更改。

+0

我註冊TextBoxBackground作爲DP創建屬性包裝,並在XAML做Background =「{Binding TextBoxBackground}」。但它仍然不會工作。 – 2011-03-14 17:01:33

+0

@Yaron:綁定可能除非您的數據上下文是您自己,否則不會工作......否則,您需要指定RelativeSource(請參閱:http://msdn.microsoft.com/en-us/library/dd553635(v=vs.95) .aspx) – 2011-03-14 17:05:38

+0

我將XMAL更改爲Background =「{Binding RelativeSource = {RelativeSource Self},Path = TextBoxBackground}」但仍然,文本框的背景不會更改 – 2011-03-14 17:15:23

相關問題