.net - 如何将完全定义的控件引用为 WPF 中的资源?

标签 .net wpf xaml resources

我知道我可以从资源字典中引用样式和模板,并且我会大量使用它们。但是完整的控制呢?

我可以在 app.xaml 中将一个完全定义的 WPF 控件(如按钮)声明为资源。例如,定义按钮的 app.xaml 文件将包含以下内容:

<Button x:Key="HelpButton" Content="?" />

但是如何在用户控件的 xaml 标记中引用它以便呈现按钮?

编辑:
回答“你为什么要这样做?”的问题。我同意按钮不是一个很好的例子(它只是一个容易描述的例子)。

您在 app.xaml 中声明并希望在多个 xaml 文件中使用的多边形(我知道不是控件)呢?

最佳答案

你不能,老实说,我不确定你为什么想要。那个按钮是一个按钮,意味着它只能在一个地方(一次);鉴于此,在您需要的每个地方定义一个新按钮是有意义的。正如您已经发现的那样,这就是模板资源的用途。

(当我说你不能时,我的意思是它在普通 XAML 中不受支持;可以想象,你可以在返回按钮的类中实现 IValueConverter,并在 XAML 中将其绑定(bind)到内容控件的内容。并且当然,您可以根据需要使用代码以编程方式从不同的容器中添加和删除按钮。这两者似乎都不是一个好选择。)

关于.net - 如何将完全定义的控件引用为 WPF 中的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762185/

相关文章:

c# - ProtectedData 可以在多台计算机上工作吗?

c# - ComboBox 项目的布局

c# - 如何实现从字符串到可见性的转换器

wpf - 没有在 child 身上调用 ArrangeOverride?

c# - WPF 中的 BindingOperations.EnableCollectionSynchronization 之谜

c# - 您如何处理遗留应用程序中未使用的代码?

c# - 如何捕捉结束调整窗口?

c# - 如何消除 Switch 语句?

C# ref/out 参数与惰性

c# - 在 Windows 8 应用程序中启用 Blend for Visual Studio 中的状态记录