我有一个宽松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>

我给的答案信贷的人谁可以回答我的“附:”在接下来的两天内质疑。这整个情况似乎有点湿,所以我会在替代品很感兴趣。

感谢:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top