0

我有一個用戶控件公開了ImageSource類型的屬性。我想在Blend中公開此屬性,以便我可以在Blend中對其進行編輯,而不是在代碼中指定圖像。在UserControl中公開ImageSource屬性以用於混合

基於我谷歌搜索,我已經添加了一個依賴屬性,並指定適當的屬性來公開Blend屬性。

我可以在那裏看到它並編輯它(作爲文本字段)。我想要做的是有一個可用圖像資源的下拉列表,以及一個用於加載另一個圖像的瀏覽按鈕。換句話說,我希望它的行爲像'圖像'控件的'源'屬性。

編輯就像旁邊一樣,我注意到暴露對齊或邊距屬性的行爲與預期的一樣,它似乎只是圖像不起作用。我真的被困在這一個,並會感謝幫助!

我當前的代碼看起來像:

public static readonly DependencyProperty ImageSourceProperty = 
     DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(SmartButton)); 

[Category("Appearance")] 
[Bindable(true)] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public ImageSource ImageSource 
{ 
    get { return (ImageSource)GetValue(ImageSourceProperty); } 
    set 
    { 
     SetValue(ImageSourceProperty, value); 
     this.BackgroundImage.Source = value; 
    } 
} 

回答

1

我一直在努力幾乎一模一樣這個問題

在我的情況下,我有(減去混合,再加上在XAML中的ControlTemplate使用屬性。)通過將ImageSource更改爲BitmapSource來獲得它的工作。 ImageSource是抽象的,BitmapSource擴展了ImageSource。

但是,有些事情對此感覺不對。 Image.Source的類型是ImageSource。無論它是否是抽象的,我似乎應該能夠使用ImageSource類型的DependencyProperty。

因此,對於我自己的情況,我已經與BitmapSource合作,但我仍在調查。

編輯:希望你不介意答案差不多一年後,你問,+/- 12小時。 ;)

EDIT2:喬治,我還沒有得到這爲我與ImageSource使用工作:

public static readonly DependencyProperty SourceProperty = 
    Image.SourceProperty.AddOwner(typeof(MyCustomButton)); 
public ImageSource Source 
{ 
    get { return (ImageSource)GetValue(SourceProperty); } 
    set { SetValue(SourceProperty, value); } 
} 
+0

不,謝謝你的提示!下次我在Blend時我會嘗試一下。 – 2010-01-10 05:38:46

相關問題