- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 wpf 应用程序中,我扩展了 datatrigger 类,如下所示
public class DescriptiveTrigger : System.Windows.DataTrigger
{
public DescriptiveTrigger()
{
}
private String _Description = "";
public String Description
{
get { return _Description; }
set { this._Description = value; }
}
}
这样用户就可以向他们创建的触发器添加描述(使用简单的上下文菜单来添加和删除它们)。然后使用 xamlwriter 导出 xaml 并保存到文件,当使用 xamlreader 重新加载文件时,我得到了这个
'MyControls.DescriptiveTrigger' trigger type in Style not recognized. Error at object 'System.Windows.Style', Line 283 Position 22.
我有一个用 .net4 编写的应用程序版本,即使使用 .net 3.5 版本创建的文件也能正常工作,所以我知道保存很好。
这是减去非重要部分的产品样本
<Control1 xmlns="clr-namespace:MyControls.Controls;assembly=MyControls"
xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:dc="clr-namespace:MyControls;assembly=MyControls"
xmlns:dcc="clr-namespace:MyControls.Converters;assembly=MyControls"
xmlns:s="clr-namespace:System;assembly=mscorlib">
.........
<av:Label BorderBrush="#FF000000" BorderThickness="1,1,1,1" Background="#FF008000" Foreground="#FFFFFFFF" HorizontalAlignment="Left" VerticalAlignment="Center" ContextMenu="{av:DynamicResource LabelContextMenuKey}" av:Grid.Column="1">
<av:Label.Style>
<av:Style TargetType="av:IFrameworkInputElement">
<av:Style.Triggers>
<dc:DescriptiveTrigger Description="Background Color Trigger Where Value Is Greater Than 100">
<dc:DescriptiveTrigger.Binding>
<av:Binding Path="Content" ConverterParameter="100" RelativeSource="{av:RelativeSource Mode=Self}">
<av:Binding.Converter>
<dcc:GreaterThanToBooleanConverter />
</av:Binding.Converter>
</av:Binding>
</dc:DescriptiveTrigger.Binding>
<av:Setter Property="av:Panel.Background">
<av:Setter.Value>
<av:SolidColorBrush>#FF0000FF</av:SolidColorBrush>
</av:Setter.Value>
</av:Setter>
<dc:DescriptiveTrigger.Value>
<s:Boolean>True</s:Boolean>
</dc:DescriptiveTrigger.Value>
</dc:DescriptiveTrigger>
</av:Style.Triggers>
<av:Style.Resources>
<av:ResourceDictionary />
</av:Style.Resources>
</av:Style>
</av:Label.Style>000
</av:Label>
..........
</Control1>
我该如何解决这个问题?不,我不能只使用 .net4 版本 :P
最佳答案
似乎触发器集合不接受 .NET 3.5 中的自定义触发器(它实际上在 4.0 中工作)
但是,如果您只想添加 Description 属性,则无需继承 DataTrigger 类。这就是附加属性的作用:)
在您的 Control1.xaml.cs 中定义此附加属性:
public static string GetDescription(DependencyObject obj)
{
return (string)obj.GetValue(DescriptionProperty);
}
public static void SetDescription(DependencyObject obj, string value)
{
obj.SetValue(DescriptionProperty, value);
}
// Using a DependencyProperty as the backing store for Description. This enables animation, styling, binding, etc...
public static readonly DependencyProperty DescriptionProperty =
DependencyProperty.RegisterAttached("Description", typeof(string), typeof(Control1), new UIPropertyMetadata(string.Empty));
然后简单地在你的 xaml 中设置它:
<DataTrigger dc:Control1.Description="Background Color Trigger Where Value Is Greater Than 100">
关于wpf - XamlReader .net 3.5 'trigger type in Style not recognized',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372414/
我知道对于具有指定 clr-namespace: 和 assembly= 标记的控件,XamlReader 只是在指定的程序集中查找该类型。 但是默认命名空间 xmlns="http://schema
在运行时使用DataTemplateSelector创建列。 XamlReader.Load处有异常:System.Windows.StaticResourceExtension。如何加载资源? va
我现在有一个带有德语变音符号(见下文)的 xaml,当我尝试解析它时,我收到了一个无效字符错误。 当我不使用 XamlParser 上下文时,它会起作用。但是我必须使用它来设置一些类型映射 XAML:
我现在有一个带有德语变音符号(见下文)的 xaml,当我尝试解析它时,我收到了一个无效字符错误。 当我不使用 XamlParser 上下文时,它会起作用。但是我必须使用它来设置一些类型映射 XAML:
我正在 WPF (.Net 3.5) 中创建一个应用程序,我希望能够根据每个客户端对其进行自定义。我将资源提取到外部 xaml(主题)文件中。将 xaml 文件构建为 Page,效果非常好。 现在我想
我正在尝试加载 foillowing xaml: 在我
我正在尝试加载 foillowing xaml: 在我
在我们的应用中,无论对象的类型如何,我们都需要将对象的属性以propertyName、propertyValue、propertyType的形式保存到同一个数据库表中。我们决定使用 XamlWrite
我有一些 Xaml 对象的字符串表示形式,我想构建控件。我正在使用 XamlReader.Parse功能来做到这一点。对于一个简单的控件,例如 Button,它有一个不带任何参数的默认构造函数,这工作
我正在尝试从 xaml 生成我自己的自定义磁贴。我已将一些代码从 C++ 转换为 C#,以便将其集成到我的应用程序中。 基本上我有这个方法: async Task GenerateHighResTil
我在 (UIElement)XamlReader.Load(...) 期间得到一个异常 'Cannot create unknown type 'TextBox'.' Line number '1'
F# 不支持部分类,也不支持 XAML 文件的预编译。解决方法:在运行时加载图形对象定义,而不是后面的编译时代码。有多种方法可以为 XamlReader 提供引用资源文件的内容。 open Syste
XamlReader正在使用本地程序集和 WPF 程序集中定义的类型加载 Xaml,没有任何问题。 如果我包含在外部程序集中定义的类型,那么 XamlParseException抛出以下消息。 Can
我正在尝试在我的 WPF 项目中实现下面的代码,以便为具有动态列的 DataGrid 动态生成 DataTemplates。我在 StackOverflow here 上找到了代码 public Da
我正在使用 XamlReader.Parse(string) 动态构建我的数据模板。我遇到的问题是我无法将任何事件放在我使用 XamlReader 创建的任何控件上。在网上做了一些研究后,我了解到这是
与 earlier question 有关我问过,我看到有 LoadComponent() 和 XamlReader.Load()。它们非常相似,以至于我不太确定在什么情况下应该使用哪一个。 那么,从
我有一个程序,用户可以在其中查看保存在 XAML 中的各种 3D 模型,然后使用 TrackballDecorator 操作 Viewport3D。这些 XAML 文件中包含转换,我使用问题 WPF
WPF 应用程序具有使用 XamlReader.Load() 方法从单独的文件加载用户控件的操作: StreamReader mysr = new StreamReader(pathToFile);
我正在玩 .net 4 System.Windows.Markup.XamlReader - 就像一个教育练习 - 我一直遇到同样的问题:用 XamlReader.Load 加载 xaml抛出一个 X
我正在构建一个通用 WP7 程序集,它将显示我的应用程序的通用帮助/关于信息,每个应用程序程序集将指定一对 StackPanels,其中包含一些应用程序特定信息(称为 em Legal.xaml 和
我是一名优秀的程序员,十分优秀!