通过ControlTemplate按钮访问WPF资源中保存的子属性

时间:2018-11-21 16:14:42

标签: wpf

我有一个资源,其中包含一些由路径组成的图标。资源中的每个图标都保存在画布中。下面显示了一个示例。

<Canvas x:Key="Home_Icon" Width="41.5455" Height="33.2506">
    <Path x:Name="Path1" Width="29.3385" Height="25.8615" Canvas.Left="6.0829" Canvas.Top="7.37233" Stretch="Fill" Fill="Red" Data="…"/>
    <Path x:Name="Path2" Width="40.9841" Height="19.2586" Canvas.Left="0.262487" Canvas.Top="0.445261" Stretch="Fill" Fill="yellow" Data="…"/>
</Canvas>

上述资源在ControlTemplate的Button中使用,如下所示(ViewBox从该资源加载画布)。

            <Style x:Key="button_home_style" TargetType="Button">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Border Padding="5,15" Background="{StaticResource background_color_light}">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="auto"/>
                                    </Grid.RowDefinitions>

                                    <Viewbox Child="{StaticResource Home_Icon}">

                                    </Viewbox>
                                </Grid>

                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter TargetName="Path1" Property="Fill" Value="{StaticResource foreground_color_highlight}"/>
                                    <Setter TargetName="Path2" Property="Fill" Value="{StaticResource foreground_color_highlight}"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

问题

当我在按钮上触发IsMouseOver时,我希望能够更改Path1和Path2上的“填充颜色”属性(这些是保存在资源中画布中的路径数据),不确定如何找到它们。

0 个答案:

没有答案