如何使松散XAML内容感知的自定义控件
-
27-09-2019 - |
题
我有一个宽松XAML文件...
<Style
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace"
TargetType="{x:Type local:CustomControl}">
<Setter Property="HoverOpacity" Value="1.0"/>
</Style>
...我想在运行时加载。只有这样,我得到一个异常说明,“参考型号无法找到名为‘CustomControl’公共型”。我怎样才能让松散XAML知道我的名字空间的?
我需要使用HoverOpacity
这是CustomControl
的依赖特性。下面是我目前使用加载XAML的代码:
var resource = Application.GetResourceStream(new Uri("pack://application:,,,/Assets/HoverStyle.xaml"));
XamlReader.Load(resource.Stream);
BTW,我意识到XAML很简单,我可以只插入代码的Style
,但是这是一个Hello World XAML;它会变得更为复杂,涉及动画和这样。
P.S。另一种方案是,要么附加XAML文件从小组派生的自定义控制(一个不崩溃的Visual Studio 2008)或容易安装触发器,数据触发器,入门的行动,并退出行动的方式的方式定制控件。
解决方案
天哪织补它,我计算出来。我需要指定与命名空间中的组件名称;像这样:
<Style
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace;assembly=MyAssembly"
TargetType="{x:Type local:CustomControl}">
<Setter Property="HoverOpacity" Value="1.0"/>
</Style>
我给的答案信贷的人谁可以回答我的“附:”在接下来的两天内质疑。这整个情况似乎有点湿,所以我会在替代品很感兴趣。
感谢:)
不隶属于 StackOverflow