问题标签 [controltemplate]
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.
wpf - WPF设计UserControl/DataTemplate问题
我有一个 WPF UserControl 代表一个有很多字段的人。有些人可以是一家公司。在这种情况下,我想将另一个模板与其他字段一起使用。后面的代码是一样的,这就是为什么我希望它作为一个只有 2 个模板的 1 控件。
我想做的是能够在 VS 设计器支持下定义这两个模板,以便我可以轻松更改它们。
问题在于某些元素附加了EventHandlers(单击...),我无法想象在使用 DataTemplate时如何解决该问题。(也许假设气泡事件在其中一个父项上注册 EventHandler ?然后查找原始源名称?)或者我应该使用 2 个UserControls然后以某种方式将它们合并到我的主 UserControl 中?
先感谢您
wpf - 在 WPF 中优雅地覆盖 ComboBox 的 ToggleButton 样式
我有一个关于如何优雅地覆盖控件可视树深处的任意元素的问题。我也尝试过用几种不同的方式来解决它,但是每种方式我都遇到了几个问题。通常,当我尝试三种不同的路径并且每一种都失败时,我会下楼,喝杯咖啡,然后问比我更聪明的人。所以我在这里。
规格:
我想扁平化组合框的样式,这样它就不会引起人们的注意。我希望它类似于 Windows.Forms.ComboBox 的 FlatStyle 我希望它在 Windows 7 和 XP 上看起来相同。
主要是,我想改变 ComboBox 的 ToggleButton 的外观。
我可以只使用 Blend 并撕掉控制模板的内容并手动更改它们。这对我来说听起来不是很开胃。
我尝试使用一种样式来覆盖 ToggleButton 的背景,但事实证明,整个 ComboBox 控件实际上是 ToggleButton 的前端。
所以我放弃了,用 Blend 撕掉了它。我发现它实际上是一个名为 ComboBoxTransparentButtonStyle 的样式,其目标类型为 ToggleButton。该样式设置了一个使用 DockPanel 的 ControlTemplate,该 DockPanel 的右侧设置了“Microsoft_Windows_Themes:ClassicBorderDecorator”类型,而这正是我们真正想要控制的。(到目前为止你和我在一起吗?)
这是图片:
精氨酸。WPF不是爆炸吗?
所以我提取了样式 ComboBoxTransparentButtonStyle 并将其放到另一个项目的 application.resources 中。问题是我无法将该样式应用于 ComboBox,因为我提取的样式的 targetType 为 ToggleButton,因此 TargetTypes 不匹配。
tl;博士你们会怎么做?
c# - WPF:从 DataTemplate 修改 ControlTemplate 属性?
对 WPF 使用 MVVM 方法,我有一个名为SubButton
. 它的样式如下:
DataTrigger
不起作用。Selected
是SubButton
类的常规 .Net 属性。我收到编译错误,因为编译器无法确定rectBackground
目标的来源。它是 的一部分ControlTemplate
,我不知道该怎么说?关于DataContext
?
wpf - WPF 布局 - 获取一列以填充可用空间
我有一个ListBox
在其模板中有一个网格以允许 4 列。一列是ListBox
. 我希望该列填充可用的水平空间。
列定义为:
我已经尝试了几种排列方式,除了显式的大小设置外,没有任何东西可以在窗口中修复。然后,当我调整窗口大小时,它不会随之调整大小。
ListBox
包裹在 aScrollViewer
中以允许垂直滚动(我猜这就是让我感到困惑的原因。)
关于如何让第三列仅填充可用空间而不是更多的任何想法?
wpf - WPF: How to have custom button template that uses system's button background by default?
I am creating a style that changes a ControlTemplate of a Button (it actually adds arrow on the right, so that the button looks like dropdown button (which is missing in wpf)).
Inside of template, I put the actual button (because I need the result to still be like button - I could change only ContentTemplate, but I need to display the actual content together with arrow, and putting ContentPresenter inside ContentTemplate yields stack overflow - wpf just expands the template into the presenter and goes on and on), together with arrow.
My problem is that I would like the user to be able to change button's background, so I need to bind Background="{TemplateBinding Background}"
. With this, the user would have to always provide the background, otherwise it would be null.
To prevent this, I understand I need to provide default value for the background, so I added <Setter Property="Background" Value="default Background goes here"/>
The question is, what should be a value of this setter? I assume that wpf's built-in styles are loaded automatically for every application, and I have looked into aero.normalcolor.xaml, where they provide ButtonNormalBackground
style, and later use it as default button style <Setter Property="Background" Value="{StaticResource ButtonNormalBackground}"/>
(aero.normalcolor.xaml, line 47).
Exactly what I wanted, however, when I use this setter, the static resource is not found. I then changed it to DynamicResource, but in that case, the button's background stays transparent - the ButtonNormalBackground isn't used!
How should I provide system's button look as default value? Thank you!
PS: dtto for BorderBrush, BorderThickness - geez, it seems that I am not allowed the tricks that WPF authors use all the time :/
My style:
wpf - 在 xaml 中引用基本类型控件模板
我有一个源自 的控件ComboBox
,我想使用ComboBox
ControlTemplate
,并在 xaml 中对其设置一些值,即ItemContainerStyle
. 下面的代码不起作用,我打算将基本ComboBox
控件模板应用于此的最后一个设置器没有做任何事情。
我想从中派生,ComboBox
但我不想包含它的整个控件模板。我什至不想触摸控制模板。我确实想更改ItemContainerStyle
,我可以从代码中做到这一点,但如果我不必这样做会更好。
我在这里想要这个的另一个原因是因为想要访问ComboBox
的控件模板的内部成员,即TextBox
和Popup
。通常我会在OnApplyTemplate
.
我觉得我走错了路,请赐教老师。
c# - 带有模板绑定的 CodeBehind 中的 CollectionViewSource
我正在创建一个基于Selector
WPF 的无外观控件,其依赖属性名为ListItems
. 当SelectedItems
改变时,我会:
在我的ControlTemplate
我将它绑定到ListBox
这样的:
但我的ListBox
.
我也试过:
我在这里想念什么?
silverlight - SilverLight - 将命令绑定到控件模板中的按钮
我有一个数据网格。在那个数据网格中,我有一堆列标题样式。在这个样式的控件模板里面,有一个按钮。我需要将命令绑定到该按钮。
请注意,标题样式中还有一个 TextBlock,我使用元素到元素绑定进行绑定,因为标题的 dataContext 中没有我的 viewModel。
如果我用同样的想法来绑定按钮命令,它就不起作用了。我错过了什么吗?
如果不清楚,请告诉我,我将发布示例代码。
提前致谢!
c# - 在运行时编辑 ControlTemplate
能够在运行时更改 BeginDate 和 EndDate 的最佳方法是什么?
wpf - 使用控件模板创建图像+文本按钮?
我厌倦了一遍又一遍地创建相同的图像+文本按钮,我想将标记移动到控件模板。这是我的问题:我需要提供模板绑定来将图像和文本添加到模板化按钮,而 Button 控件似乎没有我可以绑定的属性。
到目前为止,我的模板看起来像这样('???' 用于未知模板绑定):
是否可以使用控件模板创建此图像+文本按钮,还是我必须转到用户控件才能做到这一点?如果可以使用控件模板完成,我该如何设置模板绑定?