У меня есть окно, определенное со стилем:
<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]">
и стиль, определенный в словаре уровня приложения:
<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">
В коде позади у меня есть ссылка на набор экземпляров Window:
Win = DirectCast(sender, winBorderless)
Это позволяет получить доступ к свойствам окна, когда EventSetters передает ссылки на различные элементы управления. Однако он не обеспечивает доступ к элементам управления, определенным в стиле, через ссылку на окно, поскольку их там нет.
Итак, что является лучшим способом ссылки на элемент управления через код, который определен в стиле. Я бы предпочел не повторять деревья, чтобы найти их, но ты должен сделать ....