公开内部控件内容属性为[User Control]

时间:2010-04-19 07:31:52

标签: c# wpf xaml wpf-controls

我是世界粮食计划署的新手,并试图通过不同的例子来学习它。

现在我想创建一个自定义用户控件,其中包含按钮(以及其他控件)。我想将Buttons Content属性公开为User Controls自己。

用户控制:

<DockPanel LastChildFill="True">
    <Button Name="ClickButton" DockPanel.Dock="Right" Focusable="False"/>
    <TextBox Name="TextBox">lorem ipsum dolor set amet</TextBox>
</DockPanel>

我想在主应用程序窗口中更改按钮内容,如下所示:

<my:ButtonTextBox Name="mtb1" Grid.Column="0" Grid.Row="0">Some text</my:ButtonTextBox>

一些文字,是要通过按钮写的文字......

我怎样才能实现这一目标? 谢谢!

1 个答案:

答案 0 :(得分:5)

您的UserControl应为按钮内容定义自己的依赖项属性:

public static readonly DependencyProperty ButtonContentProperty = ...;

然后将UserControl的Button绑定到该属性:

<Button Name="ClickButton" Content="{Binding ButtonContent}" .../>

然后您可以按如下方式使用它:

<my:ButtonTextBox ButtonContent="Some text" .../>

如果您希望能够这样做:

<my:ButtonTextBox ...>Some text</my:ButtonTextBox>

您需要在UserControl上指定ContentPropertyAttribute:

[ContentProperty("ButtonContent")]
public partial class ButtonTextBox