如何在WPF中定义自定义winform控件的样式

问题描述 投票:0回答:1
c# wpf winforms
1个回答
0
投票

您只能在代码后面设置这些属性,因为 WinForms 不支持 DependencyProperty 和 -Object 的概念,而这将是在 XAML 中设置属性值的前提条件。

但是,

WindowsFormsHost
仍然通过其类型为
WindowsFormsHost.Child
System.Windows.Forms.Control
属性公开了托管的WinForms控件。通过对该控件的引用,您应该能够像在 WinForms 中一样对其进行编程。

XAML 标记:

<WindowsFormsHost Grid.Row="1" Name="AlertViewerHost">
                <common:AlertViewer x:Name="alertViewer"/>
</WindowsFormsHost>

在 C# 中,例如在代码隐藏文件的 Window.Loaded 偶数处理程序中:

var alertViewer = AlertViewerHost.Child as AlertViewer;
// make sure to use the Drawing/WinForms classes that often
// have the same name as the WPF classes.
alertViewer.Font = new System.Drawing.Font ("Microsoft Sans Serif", 8f, 
         System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);

注意:我没有测试过。我不知道它是否能达到预期的效果。

© www.soinside.com 2019 - 2024. All rights reserved.