J'ai une fenêtre définie avec un style :
<Window x:Class="winBorderless"
x:Name="winBorderless"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Local="clr-namespace:WindowStyle"
Style="{StaticResource Window_Cartesia}"
WindowStartupLocation="CenterScreen"
BorderThickness="1"
BorderBrush="#FF9CAAC1"
Margin="5"
Title="[Document Title]">
et le style défini dans un dictionnaire au niveau de l'application :
<Style x:Key="Window_Cartesia" TargetType="{x:Type Window}">
<Setter Property="WindowStyle" Value="None"/>
<Setter Property="AllowsTransparency" Value="True"/>
<Setter Property="Background" Value="Transparent"/>
<EventSetter Event="Loaded" Handler="Loaded"/>
<EventSetter Event="PreviewKeyDown" Handler="Preview_KeyDown"/>
<EventSetter Event="MouseMove" Handler="FullScreen_MouseMove"/>
<Setter Property="Template">
Dans le code derrière, j'ai une référence à l'instance de la fenêtre :
Win = DirectCast(sender, winBorderless)
Cela permet d'accéder aux propriétés de la fenêtre lorsque les EventSetters transmettent des références aux différents contrôles. Cependant, cela ne permet pas d'accéder aux contrôles définis dans le style par le biais de la référence à la fenêtre, car ils n'y existent pas.
Alors, quelle est la meilleure façon de référencer un contrôle par le biais du code derrière qui est défini dans le style. Je préférerais ne pas avoir à itérer les arbres pour les trouver, mais il faut le faire.....