通常、レイアウト ファイル内のコントロールを探しますが、スタイル スタイルでレイアウトを記述し、コード内のコントロールを更新することもあります。このとき、コントロールを直接取得することはできません。最初にスタイル ファイルを見てみましょう。
<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 コントロールは上記のコードで見つけることができます。
習ったことがありますか?私の記事が気に入ったら、「いいね!」をお願いします!!!