我发现了这个:
<DataTrigger Value="True" Binding="{Binding (0)}">RibbonMenuButton模板中的触发器。什么意思?我试过谷歌,但什么也没找到。
UPD更多代码:
<ControlTemplate x:Key="RibbonMenuButtonControlTemplate1" TargetType="{x:Type RibbonMenuButton}">
...
<DataTrigger Binding="{Binding (0)}" Value="True">
<Setter Property="TextElement.Foreground" TargetName="MainGrid" Value="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
<Setter Property="PathFill" TargetName="TwoLineText" Value="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}"/>
<Setter Property="CornerRadius" TargetName="OuterBorder" Value="0"/>
<Setter Property="Background" TargetName="OuterBorder" Value="Transparent"/>
<Setter Property="BorderBrush" TargetName="OuterBorder" Value="Transparent"/>
</DataTrigger>
...此代码在RibbonMenuButton控件上按下“编辑模板”按钮后以混合方式创建。
发布于 2014-02-19 12:11:45
看上去像个虫子。据我所知,在WPF中不能是这种类型的Binding。以下是缺陷清单,请注意connect.microsoft.com (归档)引用的第一段:
我正在尝试设计带状控件(System.Windows.Controls.Ribbon),我经常遇到问题。
{Binding (0)}**.** 这样的绑定据我所知,这里没有修补程序。
发布于 2014-02-19 13:52:39
唯一可以显示的时间是在标记化路径格式中。参见故事板概述中“间接定位”下的代码示例。但是,在XAML代码中,它是无效的。我想发生的事情是这样的:
// something goes wrong here, and GetProperties returns an empty array
var propertyChain = GetProperties();
var path = new PropertyPath("(0)", propertyChain);
trigger.Binding = new Binding { Path = path };对于空的PathParameters,XAML生成器可能会转储原始的标记化路径。
发布于 2014-02-19 12:16:02
很抱歉把这个作为回答,但它不适合在评论中。
你给我们的背景还是太少了,不过我猜是这样的。
它是某种东西的占位符。占位符在wpf世界中很少见,但很有用。这就是我现在所能想到的所有你给我们的信息。对我来说这是唯一有意义的事情。
我几乎没见过占位符。这是个聪明的主意。
通常,如果您有许多不同的主题和不同的资源名称,您最终将创建这样的占位符,它将在构建前后完成xaml文件。
这意味着您按了build操作,在编译之后或之前,xaml文件将被组合在一起,编写ribbonbar的人提供的工具将被执行以注入正确的主题资源名称,而不是占位符。
任何东西都可以被放置而不是占位符。
你从哪弄来的密码?您能使用Snoop工具查看什么是DataContext吗?
请为我们提供更多的上下文。
我建议您在运行时将模板转储到文件中,然后您将知道发生了什么。
以下是如何:
var stringBuilder = new StringBuilder();
var xmlSettings = new XmlWriterSettings
{
Indent = true
};
using (var xmlWriter = XmlWriter.Create(stringBuilder, xmlSettings))
{
XamlWriter.Save(controlName.Template, xmlWriter);
}如果在运行时转储到文件中的模板中不再有(0),那么您就会知道它是f*ing占位符。()
你能不能试一下然后告诉我们。
https://stackoverflow.com/questions/21879168
复制相似问题