在Wpf中使用UserControl作为基类显示为空

时间:2016-01-07 08:41:39

标签: c# wpf user-controls prism

您好我在我的演示项目中使用Prism,我遇到了用户控件继承问题。如果我将用户控件基类用于我的用户控件,如下所示,则用户控件的内容显示为空。然后当我使用

<igf:UserControlBase x:Class="DemoProject.Views.DemoView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:igf="http://igf.schema"
         mc:Ignorable="d" d:DesignWidth="300" d:DesignHeight="200">
             <StackPanel>
                 <TextBox Text="Hello Prism"/>
                 <TextBlock Text="Hello Prism"></TextBlock>
             </StackPanel>
</igf:ViewControlBase>

这是我的用户控件,它在另一个项目中。并且ctors现在被评论但仍然没有工作。唯一的方法是改变

using System.Windows;
using System.Windows.Controls;

namespace DemoProject.Base.Controls
{
    public class UserControlBase : UserControl
    {
        static UserControlBase()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(UserControlBase), new FrameworkPropertyMetadata(typeof(UserControlBase)));
        }

        public UserControlBase()
        {
            DefaultStyleKey = typeof(UserControlBase);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我通过在Assembly.cs文件中添加以下代码到用户控件的项目

找到了解决方案
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]