合并资源字典更改自定义控件路径

Merging ResourceDictionaries changing custom control pathing

Net 5 WFP 应用程序问题 VS v.16.9

我的自定义控件,应该显示一个平面,但没有显示在 运行。我想我知道发生了什么,但不知道如何解决它。

合并我的 Generic.xaml 文件中的资源字典以引用我的自定义控件的源代码导致蓝色波浪线和鼠标悬停工具提示 “找不到资源'ControlsFolder/CustomControl.xaml'”

如果我删除我的合并词典,鼠标悬停工具提示会变为 "Projectnamespace.ControlsFolder.CustomControl"

工具提示 CustomControl 在我的 MainWindow.xaml 中调用如下。

<Control:CustomControl/>

我认为导致问题的词典合并是...

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="/ControlsFolder/CustomContol.xaml"/>
  </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary>
    

我的CustomControls.cs有下面的构造函数

static CustomControl()
{
    DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControl), new FrameworkPropertyMetadata(typeof(CustomControl)));
}

据我了解,此构造函数搜索 Themes/Generic.xaml 文件以找出我的自定义控件的位置,以便将默认元数据添加到我的自定义控件。但我认为当我添加我的合并资源字典时,它改变了我的 CustomControl 调用的路径以在 /ControlFolder/CustomControl.xaml 中搜索我的样式而不是默认路径应该是“Projectnamespace.ControlsFolder.CustomControl” .

或者我犯了一个简单的错误,对于初学者来说根本不直观。

也许有一个 属性 我可以添加到 CustomControl 将路径设置回另一个。有人知道问题出在哪里吗?

但我应该会在屏幕上看到我的风格

欢迎来到 SO!试试这个 URI:

<ResourceDictionary Source="/YourProjectName;component/ControlsFolder/CustomContol.xaml" />