2011-12-23 4 views
0

Я создал UserControl с меткой и прямоугольником внутри 2 строк сетки. я добавил свойствоDependencyProperty и UserControl в WPF

public string SetText 
{ 
    get 
    { 
     return (string)GetValue(mLabel.ContentProperty); 
    } 
    set 
    { 
     SetValue(mLabel.ContentProperty, value); 
    } 
} 

Использование свойства

<local:PlayerMiniImage SetText="Player 1" ... 

Когда я использовал свойство, шрифт метки изменился и прямоугольник исчез Есть какие-либо идеи?

+0

Как SetText переплетенного в PlayerMiniImage? –

ответ

0

Если определить UserControl ...

<UserControl x:Class="..."> 
    <Border> 
     <!-- ... --> 
    </Border> 
</UserControl> 

Тогда все внутри него, здесь Border, является Content, следовательно, если вы установите ContentProperty все будет заменено.


Чтобы установить содержание этикетки создать новый DP:

public static readonly DependencyProperty LabelContentProperty = 
    DependencyProperty.Register("LabelContent", typeof(object), typeof(MyUserControl), new UIPropertyMetadata(null)); 
public object LabelContent 
{ 
    get { return (object)GetValue(LabelContentProperty); } 
    set { SetValue(LabelContentProperty, value); } 
} 

и связать ярлык к нему:

<Label Content="{Binding LabelContent, RelativeSource={RelativeSource AncestorType=UserControl}}"/> 
Смежные вопросы