WPF 查找Style样式文件里面的控件组件

平时我们都是找布局文件里面的控件,但是有时候也会在Style样式里写布局,并在代码里更新控件,这时候我们不能直接拿到控件,下面我们先看下样式文件

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style x:Key="ImageBorderStyle" TargetType="{x:Type ListViewItem}">
        <Setter Property="Height" Value ="165"/>
        <Setter Property="Width" Value="292"/>
        <Setter Property="Margin" Value="0,8,0,8"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListViewItem}">
                    <Border Width="292" Height="165" BorderThickness="4" BorderBrush="#CDCDCC" CornerRadius="6"
                        x:Name="ItemBorder">
                        <Image Stretch="Uniform" Width="292" Height="165" x:Name="ListItemImage">
                            <Image.Clip>
                                <RectangleGeometry RadiusX="5" RadiusY="5" Rect="0,0,284,157"/>
                            </Image.Clip>
                        </Image>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter TargetName="ItemBorder" Property="BorderBrush" Value="#10AC03"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

里面有个叫ListItemImage的图片控件,我们在初始化Window时,根据文件夹里面的图片动态刷新图片列表,所以在Window初始完成后要能找到该控件。下面我们看看怎么查找控件的

Image image = (Image)listViewItem.Template.FindName("ListItemImage", listViewItem);

listViewItem是引用上面样式的控件,通过上面的代码可以找到Image控件

你学会了吗?如果你喜欢我的文章,请点赞哈!!!

猜你喜欢

转载自blog.csdn.net/baoolong/article/details/126643380