假设想要创建一个左侧有一个小椭圆的自定义按钮.
我希望这个椭圆的颜色是数据可绑定的.
我希望这个椭圆的颜色是数据可绑定的.
所以我启动Blend并在表面上放置一个按钮并编辑模板的副本.
我现在拥有自定义模板,并在其中放入一个小椭圆:
…
<Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="White" CornerRadius="3"> <Grid Background="{TemplateBinding Background}" Margin="1"> <snip /> <!-- My ellipse here --> <Ellipse x:Name="ellipse" Width="10" Height="10" HorizontalAlignment="Left" /> </Grid> </Border>
…
我右键单击此按钮并选择Make into UserControl,命名为MyButton.
在这个按钮后面的代码中,我为theBrush`添加了一个自定义依赖项属性:
public Brush MyColor { get { return (Brush)GetValue(MyColorProperty); } set { SetValue(MyColorProperty,value); } } public static readonly DependencyProperty MyColorProperty = DependencyProperty.Register("MyColor",typeof(Brush),typeof(MyButton),new PropertyMetadata(new opertyChangedCallback(MyColorPropertyChanged))); private static void MyColorPropertyChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) { var thisControl = d as MyButton; }
然后我可以使用我的自定义按钮:
<local:MyButton Width="130" MyColor="Red"/>
但后来我被卡住了.如何将我的椭圆颜色(上面的x:Name =“ellipse”)绑定到MyColor属性?
编辑:所以我使用Fill = {TemplateBinding MyColor}绑定用户控件中的Fill属性,但后来我在类型Button中找不到属性MyColor.
好的,所以我需要将我的模板定位到自定义MyButton类型,但我该怎么做呢?
我可以简单地将Button更改为MyButton,因为我在’MyButton’类型中找不到Property’ContentTemplate’
<UserControl <snip/> x:Class="SilverlightApplication1.MyButton"> <UserControl.Resources> <Style x:Key="ButtonStyle1" targettype="Button"> <snip/> </Style> </UserControl.Resources> <Grid x:Name="LayoutRoot"> <Button Content="Test Button" Style="{StaticResource ButtonStyle1}"/> </Grid> </UserControl>
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。