我有一个Win32应用程序,该应用程序托管一个HostSource来显示WPF ContentControl。 ContentControl将我的UserControl接收为Content,并将其显示在Win32应用程序中。 ContentControl看起来像这样
public class CustomContentControlWPF : ContentControl
{
public static CustomContentControlWPF()
{
FrameworkElement.DefaultStyleKeyProperty.
OverrideMetadata(typeof(CustomContentControlWPF),
new FrameworkPropertyMetadata(typeof(CustomContentControlWPF)));
}
}
问题是我不喜欢将要应用的样式。我无法修改定义CustomContentControlWPF的程序集的代码。 是否可以在运行时从托管子UserControl内部更改CustomContentControlWPF的样式?
我确实尝试过这样的事情:
public MyUserControl : UserControl
{
public void changeStyle()
{
FrameworkElement.DefaultStyleKeyProperty.
OverrideMetadata(typeof(CustomContentControlWPF),
new FrameworkPropertyMetadata(typeof(UserControl)));
}
}
但这失败了,因为CustomContentControlWPF类型的样式已经被覆盖。
有什么想法吗?