我有一个松散的 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
which 是CustomControl
. 这是我目前用来加载 XAML 的代码:
var resource = Application.GetResourceStream(new Uri("pack://application:,,,/Assets/HoverStyle.xaml"));
XamlReader.Load(resource.Stream);
顺便说一句,我意识到 XAML 很简单,我可以只插入Style
代码,但这是一个 hello world XAML;它会变得更加复杂,涉及动画等。
PS 另一种解决方案是将 XAML 文件附加到从 Panel 派生的自定义控件(不会使 Visual Studio 2008 崩溃的控件)或轻松附加触发器、数据触发器、进入操作和退出操作的方法到自定义控件。