c# - 将内部控件内容属性公开为自己的[用户控件]

标签 c# wpf xaml wpf-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>

一些文本,是要写在按钮上的文本...

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

最佳答案

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

public static readonly DependencyProperty ButtonContentProperty = ...;

然后将您的 UserControl 的 Button 绑定(bind)到该属性:

<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

关于c# - 将内部控件内容属性公开为自己的[用户控件],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2665800/

相关文章:

c# - .net 中使用的所有语言都具有相同的性能吗?

c# - Linphone SDK 集成在 Xamarin Android 中返回未知程序集

wpf - 处理 WPF 窗口的正确方法是什么?

wpf - 您的 ViewModel 是否应该将 XAML 元素作为属性公开?

wpf - 在 XAML 根元素中使用 StaticResource

c# - 将 c# Rijndael 函数转换为 php 函数

c# - 如何将富文本呈现为图像?

c# - 无法设置多重绑定(bind)

c# - WPF Styling 样式中的嵌套元素

c# - XAML,在带有动画的按钮内移动两个内容控件