问题标签 [templatebinding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1107 浏览

silverlight - 绑定到 ControlTemplate 中的转换

我正在尝试在 Silverlight 中创建一个自定义控件,以动态缩放其 ControlTemplate 中的元素。ControlTemplate 的第一次尝试看起来像这样:

但是,此论坛主题指出 TemplateBinding 仅适用于 FrameworkElements 的衍生产品。ScaleTransform 不是 FrameworkElement。有解决办法吗?有针对这种情况的最佳实践吗?

0 投票
1 回答
1242 浏览

wpf - WPF - 设计一个无外观的控件:如何从第二级 ControlTemplates 访问控件的依赖属性?

我正在扩展ItemsControl( class EnhancedItemsControl : ItemsControl),因为我想向它添加几个依赖属性 - 比如AlternativeContent当集合中没有项目时将显示这些属性(考虑在 itemscontrol 中为搜索结果输入“输入搜索词并点击搜索”标签)。

我已经子类化ItemsControl并添加了一个AlternativeContentdep。类型的属性FrameworkElement。现在我想在 Themes/Generic.xaml 中提供默认样式(我已添加ThemeInfoAttribute到 AsseblyInfo,并在静态 costructor 中提供了元数据,如本优秀教程中所述)。

样式包含. ControlTemplate_ _ControlTemplateContentPresenterAlternativeContent

现在,我的问题是如何告诉ContentPresenter它应该从顶层获取其内容EnhancedItemsControl?如果我在 style's 内部ControlTemplate,我会使用:

但是由于我在ItemsControl's ControlTemplateinside style'sControlTemplate中,这显然不起作用,我需要引用的不是父模板,而是祖父模板,但是TemplateBinding没有AncestorLevel参数。

我也试过:

但这也会导致空ContentPresenter。我不能命名TemplatedParent(因为它在 之外ControlTemplate),所以我不能通过名称来引用它。我不能使用TemplatedParent RelativeBinding,因为它没有达到超过两个级别的控制模板。RelativeSource FindAncestor奇怪的是不起作用。

知道如何解决这个问题吗?谢谢!

Generic.xaml(摘录):

控制代码:

用法(aList<string>提供为DataContext):

0 投票
2 回答
2232 浏览

silverlight - 在 ControlTemplate 中使用 {TemplateBinding Content} withTextBlock

基本上我有一个按钮,我为其构建了一个控制模板。它目前正在运行,但 VS 2010 在我的控件模板中抱怨以下代码行

控件模板用于按钮,我有多种针对此 TextBlock 的 VisualStates。

我明白为什么 VS2010 会抱怨……如果内容实际上不是文本怎么办?这会导致问题。对我来说最重要的是我想设置文本的前景以响应视觉状态的变化。

关于我如何做到这一点的任何想法?(试试吧,它的工作原理......但vs2010设计师窒息它)

以下是整个风格:

这将被用作:

0 投票
4 回答
23478 浏览

wpf - WPF ControlTemplate:如何为 TemplateBinding 提供默认值?

我正在编写一个子类化按钮的 WPF 控件。然后,我在 Themes\generic.xaml 中提供了一个默认样式,如下所示(简化):

我希望用户有机会更改控件的背景,但如果他没有,我想提供默认值。我该怎么做?

当我像在发布的代码中那样做时,除非用户明确指定它们(这有效地强制用户始终提供一些值),否则 Background 和 BorderBrush 为空(= 不存在),但标准 Windows 控件(如 Button)提供默认外观,仍然可以由用户自定义。如何在我的控制下做到这一点?

谢谢!

迈克尔莫顿的解决方案:

您可以在样式中提供默认值作为设置器:

用法:

0 投票
4 回答
3209 浏览

.net - WPF:TemplateBinding 到 StrokeThickness 的 Shape 不起作用?

看起来 ControlTemplate 中的以下 Ellipse 没有得到 BorderThickness,但为什么呢?

TemplateBindingForeground工作得很好,椭圆是绿色的。但StrokeThickness它似乎不起作用,为什么?

0 投票
0 回答
452 浏览

c# - 带有模板绑定的 CodeBehind 中的 CollectionViewSource

我正在创建一个基于SelectorWPF 的无外观控件,其依赖属性名为ListItems. 当SelectedItems改变时,我会:

在我的ControlTemplate我将它绑定到ListBox这样的:

但我的ListBox.

我也试过:

我在这里想念什么?

0 投票
4 回答
9767 浏览

wpf - WPF 自定义控件:模板绑定到图像

我正在创建一个 WPF 自定义控件,一个Button带有Imageand的Text。我在控件中添加了两个依赖属性ImagePathText,并且控件模板(在 Themes\Generic.xaml 中)是一个简单的堆栈面板,可以水平排列图像和文本。

Text物业运作良好。TemplateBinding但是由于某种原因,当我使用ImagePath依赖属性获取其路径时,我的测试项目中的示例图像没有出现。TemplateBinding我已经通过将自定义控件中的 临时替换为图像的路径来测试图像,在这种情况下它会出现。

我希望在这方面有更多经验的人可以看看并告诉我为什么控件没有按预期工作。谢谢你的帮助。

我的 VS 2008 解决方案包含一个项目 CustomControlDemo。该项目包含一个自定义控件 TaskButton.cs 和一个用于测试该控件的主窗口 Window1.xaml。我的测试图像 calendar.png 位于项目根级别的 Resources 文件夹中,Generic.xaml 位于项目根级别的 Themes 文件夹中。

这是我的自定义控件的代码(来自 TaskButton.cs):

这是控制模板(来自 Generic.xaml):

最后,这是我用来测试控件的 Window1 标记:

任何想法为什么图像路径不起作用?再次感谢。

0 投票
1 回答
10205 浏览

wpf - 带有转换器的模板绑定 - 有什么问题?

我正在创建一个游戏桌。我想将字段大小(一个字段是正方形)指定为附加属性,并使用 ViewPort 的这个数据集值绘制 2x2 矩阵(平铺模式将完成游戏桌的其余部分)。

我很茫然什么是错的,因为绑定不起作用。

在 XAML 中测试我想要的行为:

游戏桌基于此 DrawingPaint 示例:http: //msdn.microsoft.com/en-us/library/aa970904.aspx(此处有图片)

XAML:

转换器和属性定义:

0 投票
1 回答
990 浏览

wpf - 无法将属性“[attr]”中的值转换为“System.Windows.TemplateBindingExtension”类型的对象

当我在类层次结构之外的类中定义附加的依赖项属性并将所有者设置为公共父类时,出现此错误。

WindowBase 类中的附加依赖属性(在类层次结构之外 => 生成的错误):

失败的模板绑定

如果我改为在类层次结构中的一个类中定义附加的依赖属性并将所有者设置为该类,那么我不会收到任何错误,这是为什么呢?

WindowBase 中的附加依赖项属性(在类层次结构内 => 没有错误):

最好的问候, 杰斯珀

0 投票
2 回答
7297 浏览

wpf - 使用 TemplateBinding 更新源

我将这种风格用于我的所有标签

和我的样品标签

但是我觉得 TemplateBiding 不支持更新属性。如何解决这个问题