如何在WPF中Usercontrol现实自定义事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在WPF中Usercontrol现实自定义事件相关的知识,希望对你有一定的参考价值。

参考技术A

    实现方法:
        a.继承 BaseCellType 创建自定单元格类型。
        b.重载 PaintCell 和 GetEditorControl 方法添加自定义控件。

    具体实现步骤:
        a.创建用户自定义控件 - UserControl,我在这里添加了 FileUpload 和 Calendar 标准控件。

       b.创建自定义单元格类型

       c.应用单元格类型到 Cell 上

    详细的使用步骤,可以参考下面的博客

    http://blog.gcpowertools.com.cn/post/2012/11/14/%E5%9C%A8-Cell-%E4%B8%AD%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8E%A7%E4%BB%B6-.aspx

在 WPF 中,如何在设计视图中将样式应用于 UserControl?

【中文标题】在 WPF 中,如何在设计视图中将样式应用于 UserControl?【英文标题】:In WPF, How to apply style to UserControl in design view? 【发布时间】:2011-06-29 14:56:36 【问题描述】:

我通常在选项卡下的 App.xml 中定义样式和控件模板。 因此,在设计 UI 时,我可以在带有 .NET3.5 的 Visual Studio 2008 中看到具有设计视图中应用样式的 UI。

但是,在另一种情况下,有时我只制作 UserControl 项目,在这种情况下,没有 App.xml,因此 UI 在设计视图中显示为默认外观。很难知道运行时的实际外观。

有没有办法将样式也应用到 UserControl? 如果有办法在应用程序项目和 UserControl 项目之间共享相同的样式和模板,那就完美了!

如果有解决办法,请告诉我。

【问题讨论】:

创建一个页面或窗口作为根元素元素。将您的资源添加到 Window.Resources。将您的 UserControl 添加为 Window 的内容。 【参考方案1】:

您可以在您的控制项目中将您的样式保存在单独的ResourceDictionary 中。然后你需要在每个用户控件顶部的资源块中Merge Dictionaries:

<UserControl.Resources>
   <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
         <ResourceDictionary Source="MyControlLibraryStyles.xaml"/>
      </ResourceDictionary.MergedDictionaries>
   </ResourceDictionary>
</UserControl.Resources>

这种方法的问题当然是您失去了应用级样式可以为您带来的任何好处(例如为不同的应用程序设置不同的样式),因为现在样式都由底层控件确定。

【讨论】:

完美!我想做的是对所有应用程序使用相同的样式,因此失去对不同应用程序使用不同样式的任何好处对我来说根本不是缺点。 =) 酷。谢谢,达娜。

以上是关于如何在WPF中Usercontrol现实自定义事件的主要内容,如果未能解决你的问题,请参考以下文章

2016-11-11坚持学习Day24WPF 自定义控件 附加属性 自定义事件

在WPF中UserControl

WPF UserControl vb.net 不会显示自定义字体系列

与主程序通信的 UserControl 事件

WPF 在 GridViewColumn.CellTemplate 的 DataTemplate 中绑定 UserControl 属性

XAML: 自定义控件中事件处理的最佳实践