WPF依赖项属性绑定到用户控件

编码器

我有一个名为MenuButton的按钮子类。

public class MenuButton : Button
{
    public string Caption
    {
        get { return (string)GetValue(CaptionProperty); }
        set { SetValue(CaptionProperty, value); }
    }
    public static readonly DependencyProperty CaptionProperty =
        DependencyProperty.Register("Caption", typeof(string), typeof(MenuButton), new UIPropertyMetadata(null));


    public UserControl Icon
    {
        get { return (UserControl)GetValue(IconProperty); }
        set { SetValue(IconProperty, value); }
    }
    public static readonly DependencyProperty IconProperty =
        DependencyProperty.Register("Icon", typeof(UserControl), typeof(MenuButton),
            new PropertyMetadata(null));

} 

我想要以一种样式显示一个图标,该图标是使用SVG文件的路径创建的。我创建了一个包含XAML图标的用户控件:

<UserControl x:Class="WpfApplication1.Views.ScopeIcon"
             .
             .
             .
             >

    <Viewbox Height="55"
             Width="55">

        <Grid>
            <Path Fill="LightBlue" Data="M98.219,48.111C97..."/>
            <Path Fill="LightBlue" Data="M98.219,46.948C97...."/>
        </Grid>

    </Viewbox>
</UserControl>

这是样式:

<Style TargetType="Button"
        x:Key="TestButtonStyle">

    <Setter Property="Height" Value="140"/>
    <Setter Property="Width" Value="195"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type controls:MenuButton}">

                <Border x:Name="TheBorder">

                    <Grid>

                        <Grid.RowDefinitions>
                            <RowDefinition Height="50*"/>
                            <RowDefinition Height="50*"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>

                        <ContentPresenter Grid.Row="0"/>  <===== THE USER CONTROL WILL GO HERE

                        <TextBlock Grid.Row="1"
                                Grid.Column="0"
                                Text="{TemplateBinding Caption}"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Top"
                                Margin="5"
                                Foreground="White"
                                FontSize="14"
                                TextAlignment="Center"
                                TextWrapping="WrapWithOverflow"/>

                    </Grid>

                </Border>

            </ControlTemplate>

        </Setter.Value>
    </Setter>

</Style>

我将在这里设置:

<ListBox Grid.Row="0"
            ItemsSource="{Binding MainTools}"                         >

    <ListBox.ItemTemplate>
        <DataTemplate>
            <controls:MenuButton Caption="{Binding Caption}"
                                    Margin="2"
                                    Width="100"
                                    Style="{StaticResource TestButtonStyle}"
                                    VerticalAlignment="Top"
                                    Command="{Binding Path=ButtonClick}"
                                    CommandParameter="{x:Static enums:Tabs.Oscilloscope}"
                                    Icon=""/>   <============= HOW DO I PUT THE SCOPEICON USER CONTROL HERE?



        </DataTemplate>
    </ListBox.ItemTemplate>

</ListBox>

我实质上是在尝试嵌套用户控件,但是我想告诉XAML中的按钮,用于其图标的UserControl是什么。谢谢

苏雷什

首先,你需要更新你的风格来设定的 Content属性对你ContentPresenter,你做了同样的方式Text对物业TextBlock

<ContentPresenter Grid.Row="0" Content="{TemplateBinding Icon}"/>

而且,然后设置IconMenuButton您的DataTemplate更新中的DataTemplate喜欢的东西你的菜单按钮元素:

<controls:MenuButton Caption="Caption"
                     Margin="2"
                     Width="100"
                     Style="{StaticResource TestButtonStyle}"
                     VerticalAlignment="Top"
                     Command="{Binding Path=ButtonClick}"
                     CommandParameter="{x:Static enums:Tabs.Oscilloscope}">
    <controls:MenuButton.Icon>
        <views:ScopeIcon />
    </controls:MenuButton.Icon>
</controls:MenuButton>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF依赖项属性绑定到用户控件

来自分类Dev

WPF用户控件依赖项属性绑定

来自分类Dev

WPF:将静态资源绑定到用户控件中的依赖项属性

来自分类Dev

绑定到用户控件依赖项属性不起作用

来自分类Dev

我可以通过绑定到wpf父控件上的属性的依赖项属性在xaml中设置用户控件datacontext吗?

来自分类Dev

用户控件累积依赖项属性绑定

来自分类Dev

WPF用户控件双向绑定依赖属性

来自分类Dev

用户控件的依赖项属性-WPF

来自分类Dev

WPF:用户控件的依赖项属性

来自分类Dev

绑定到wpf自定义控件依赖项属性以获取工具提示吗?

来自分类Dev

绑定到wpf自定义控件依赖项属性以获取工具提示吗?

来自分类Dev

如何正确绑定到MVVM框架中用户控件的依赖项属性

来自分类Dev

尝试绑定到同一用户控件的依赖项属性时出错

来自分类Dev

在用户控件中绑定ObservableCollection依赖项属性

来自分类Dev

UWP用户控件:绑定依赖项属性的集合更改事件

来自分类Dev

绑定到子控件内部行为的依赖项属性

来自分类Dev

当绑定数据更改时,用户控件上的依赖项属性不会更新属性

来自分类Dev

自定义控件中的属性绑定到依赖项属性不起作用

来自分类Dev

WPF自定义控件依赖项属性中未知对象的双向绑定问题

来自分类Dev

在允许双向绑定的用户控件中创建依赖项属性的正确方法是什么

来自分类Dev

WPF依赖项属性数据绑定

来自分类Dev

将具有依赖项属性的值从一个类绑定到wpf中的另一个类文本框控件

来自分类Dev

在代码内绑定WPF用户控件属性

来自分类Dev

WPF 用户控件属性未绑定或更新

来自分类Dev

DataTrigger绑定到UserControl依赖项属性

来自分类Dev

将属性绑定到用户控件

来自分类Dev

将用户控件属性绑定到ItemsControl

来自分类Dev

将用户控件的属性绑定到父控件的属性

来自分类Dev

如何正确绑定子用户控件依赖属性的共享属性

Related 相关文章

  1. 1

    WPF依赖项属性绑定到用户控件

  2. 2

    WPF用户控件依赖项属性绑定

  3. 3

    WPF:将静态资源绑定到用户控件中的依赖项属性

  4. 4

    绑定到用户控件依赖项属性不起作用

  5. 5

    我可以通过绑定到wpf父控件上的属性的依赖项属性在xaml中设置用户控件datacontext吗?

  6. 6

    用户控件累积依赖项属性绑定

  7. 7

    WPF用户控件双向绑定依赖属性

  8. 8

    用户控件的依赖项属性-WPF

  9. 9

    WPF:用户控件的依赖项属性

  10. 10

    绑定到wpf自定义控件依赖项属性以获取工具提示吗?

  11. 11

    绑定到wpf自定义控件依赖项属性以获取工具提示吗?

  12. 12

    如何正确绑定到MVVM框架中用户控件的依赖项属性

  13. 13

    尝试绑定到同一用户控件的依赖项属性时出错

  14. 14

    在用户控件中绑定ObservableCollection依赖项属性

  15. 15

    UWP用户控件:绑定依赖项属性的集合更改事件

  16. 16

    绑定到子控件内部行为的依赖项属性

  17. 17

    当绑定数据更改时,用户控件上的依赖项属性不会更新属性

  18. 18

    自定义控件中的属性绑定到依赖项属性不起作用

  19. 19

    WPF自定义控件依赖项属性中未知对象的双向绑定问题

  20. 20

    在允许双向绑定的用户控件中创建依赖项属性的正确方法是什么

  21. 21

    WPF依赖项属性数据绑定

  22. 22

    将具有依赖项属性的值从一个类绑定到wpf中的另一个类文本框控件

  23. 23

    在代码内绑定WPF用户控件属性

  24. 24

    WPF 用户控件属性未绑定或更新

  25. 25

    DataTrigger绑定到UserControl依赖项属性

  26. 26

    将属性绑定到用户控件

  27. 27

    将用户控件属性绑定到ItemsControl

  28. 28

    将用户控件的属性绑定到父控件的属性

  29. 29

    如何正确绑定子用户控件依赖属性的共享属性

热门标签

归档