- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是在silverlight 中处理自定义控件,而在我的一生中,我无法让TemplateBindings 工作。有人可以给这个简化版本一次,看看我是否遗漏了什么。
所以我在 generic.xaml 中的 ControlTemplate 看起来像
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:NumericStepperControl;assembly=NumericStepperControl">
<Style TargetType="local:NumericStepper">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:NumericStepper">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="Black" BorderThickness="2" Width="50" Height="30">
<TextBlock Width="50" Height="30" Text="{TemplateBinding Value}" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
namespace NumericStepperControl
{
public class NumericStepper : Control
{
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(int), typeof(NumericStepper), new PropertyMetadata(20));
public NumericStepper()
: base()
{
DefaultStyleKey = typeof( NumericStepper );
}
public int Value
{
get
{
return (int)GetValue(ValueProperty);
}
set
{
SetValue(ValueProperty, value);
}
}
}
}
最佳答案
经过一番挖掘,事实证明 TextBlock 实际上不会在传入的任何内容上调用 ToString。要解决此问题,您必须使用 Converter 为您调用 ToString。
问题是,TemplateBinding 不支持转换器。您必须将 TemplateBinding 添加到 DataContext,然后在 Text 属性中使用普通的 Binding 以及转换器。
所以 TextBlock 标记变为
<TextBlock Width="50" Height="30" DataContext="{TemplateBinding Value}" Text="{Binding Converter={StaticResource NumberTypeToStringConverter}}" />
public class NumberTypeToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
throw new NullReferenceException();
}
return value.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
MethodInfo methodInfo = targetType.GetMethod("Parse");
if (methodInfo == null)
{
throw new MissingMethodException("The targetType to convert back to a Number must implement a Parse method");
}
return methodInfo.Invoke(null, new object[] { value });
}
}
关于silverlight-2.0 - 自定义控件中的 TemplateBindings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755877/
我是 WPF 的新手,我正在努力寻找我正在尝试做的事情的解决方案,因为我仍然有点不确定我是否正确地做这件事。 我为按钮定义了以下样式
好的,所以我有一个包含以下资源的窗口
我有一个列表框,其项目模板是一个列表框。我正在尝试将内部列表框的“前景”属性设置为与主列表框的相同。这是失败的。以下是代码片段。在这里 Foreground="{TemplateBinding For
自定义控件(在 VS 2008 下编写)具有 SelectedColor 依赖属性,其控件模板包含以下内容: ... ... 除非将绑定(bind)替换为: ...
我有一个名为 EnhancedTextBox 的自定义控件,它是一个具有 TextBox 和 Button 的 UserControl。对于消费者来说,我希望它看起来像一个文本框,所以我做了以下事情:
我正在创建一个 WPF 自定义控件,一个 Button与 Image和 Text .我在控件中添加了两个依赖属性 ImagePath和 Text ,并且控件模板(在 Themes\Generic.xa
这 2 个绑定(bind)之间的区别是什么: 和 ? 最佳答案 TemplateBinding 并不完全相同。 MSDN 文档通常是
我正在尝试制作自己的控件版本,例如 TextBox ,我想向其中添加一些自定义 UI。我想从这个类继承,这样用户仍然可以像调用普通文本框一样调用我的特殊文本框。我有以下内容: // MySpecial
我只是在silverlight 中处理自定义控件,而在我的一生中,我无法让TemplateBindings 工作。有人可以给这个简化版本一次,看看我是否遗漏了什么。 所以我在 generic.xaml
想象一个名为 Testko 的控件,如下所示: public class Testko: Control { public static readonly Dependency
我是创建 UserControl 的新人,现在我正在尝试自定义 UserControl 模板,如下所示:
我正在创建 模板化控件 在我的通用 Windows 应用程序中。 问题是在 TemplateBinding不起作用。 似乎问题在于它是在 DataTemplate 中定义的。 . 这是Style并将
我想在 XAML 字典中的 Border 上使用 RoutedEvent。 RoutedEvent 来自模板所在的类,我该如何实现? ModernWindow.cs /// /// Gets fir
在我的 Silverlight 3 应用程序中,我创建了一个自定义工具提示,它会在鼠标悬停在饼图的一部分上时显示。显示的值通过 TemplateBinding 设置:
Polymer’s TemplateBinding library extends the capabilities of the HTML Template Element by enabling
目前,我正在开发一个简单的自定义按钮,它使用用户提供的图像作为按下和正常状态的背景。我有很多按钮,所以我决定编写一个自定义按钮并为按下和正常状态的图片实现两个属性。 这是我正在使用的代码 public
这就是我在 WPF 中重现这个问题的方式: 创建自定义控件: public class TestCustomControl : Control { static TestCustomControl()
我正在构建一个按钮样式,该样式依赖于将颜色画笔转换为较暗的阴影来创建阴影。在常规 XAML 中,我有一个转换器,而不是我在完美工作的绑定(bind)上使用的转换器: BorderBrush="{Bin
为什么下面的 XAML 给我一个 XamlParseException 和(无意义的)消息“表达式类型不是有效的样式值”。在运行时?
我正在 WPF 中制作自定义控件。我仍在学习 TemplateBinding 的详细信息(在自定义控件中大量使用)。 我注意到我似乎无法在 MulitBinding 内部使用 TemplateBind
我是一名优秀的程序员,十分优秀!