wpf - 访问 ControlTemplate 中的内部元素

标签 wpf triggers controltemplate xname

这是我的代码:

<ControlTemplate TargetType="{x:Type ToggleButton}">
    <Border x:Name="Chrome">
        <Grid x:Name="Arrow">
            <Grid.Background>
                <DrawingBrush Viewport="0,0,4,4" Viewbox="0,-0.4,16,16" ViewboxUnits="Absolute">
                    <DrawingBrush.Drawing>
                        <GeometryDrawing x:Name="ArrowDrawing">
                            <GeometryDrawing.Geometry>
                                <PathGeometry>
                                    <PathFigure StartPoint="1,1" IsClosed="True">
                                        <LineSegment Point="2,2.45"/>
                                        <LineSegment Point="3,1"/>
                                        <LineSegment Point="2,1.75"/>
                                    </PathFigure>
                                </PathGeometry>
                            </GeometryDrawing.Geometry>
                        </GeometryDrawing>
                    </DrawingBrush.Drawing>
                </DrawingBrush>
            </Grid.Background>
        </Grid>
    </Border>
    <ControlTemplate.Triggers>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Brush" TargetName="ArrowDrawing" Value="{StaticResource DisabledForecolor}"/>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

因此,当触发器触发时(在编译时),我收到错误:

找不到触发目标“ArrowDrawing”。 (目标必须出现在使用它的任何 Setter、触发器或条件之前。)

如何从触发器中实际访问名为 ArrowDrawingGeometryDrawing

最佳答案

实际上有两种方法可以实现这一点,一种是使用绑定(bind):

Storyboard.Target="{Binding ElementName=ContentPopup}"

另一种是使用 XAML 内部引用:

Storyboard.Target="{x:Reference Name=ContentPopup}"

同样的答案是here !

关于wpf - 访问 ControlTemplate 中的内部元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097214/

相关文章:

c# - 在 Windows 10 上通过 C# 关闭 Wi-Fi

php - 使用不同的增值税更新现有价格。 PHP 与触发器

java - 数据库触发器在行插入和更新时填充当前日期不起作用

wpf - 使用样式时不应用默认的自定义 ControlTemplate

c# - 根据内容的最佳匹配测试创建 WPF UI

c# - 使用线程和 MVVM 将高速数据流式传输到 WPF UI

wpf - 绑定(bind)到集合中的单个元素

mysql - 触发器未按预期工作

c# - 如何在控件模板中获取目标的属性值

wpf - Storyboard未从 ControlTemplate DataTrigger 执行