我似乎无法在设计器中看到我的自定义控件在混合或VS.我无法弄清楚可能出现的问题。当我运行应用程序时,它会按预期工作(例如,我看到一个按钮)
主题\ Generic.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1">
<Style TargetType="{x:Type local:MyControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyControl}">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" >
<Button Content="Button" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
MyControl.cs 名称空间WpfApp1
{
public class MyControl : Control
{
static MyControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyControl),
new FrameworkPropertyMetadata(typeof(MyControl)));
}
}
MainWindow.xaml
<Window
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:wpfApp1="clr-namespace:WpfApp1"
x:Class="WpfApp1.MainWindow"
mc:Ignorable="d"
Title="MainWindow">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" >
<wpfApp1:MyControl Height="100" Width="100"/>
</StackPanel>
在assemblyInfo.cs
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly )]
[编辑] 无法解释。 将所有代码复制到新的sln中,它按预期工作。 将所有代码重新复制回原来的sln,删除.vs文件夹,重建,重新启动,重新启动机器,检查项目,解决方案文件等......没有什么只是拒绝显示在一个而不是另一个。