Просто из любопытства.Возьмите этот пример:
Во-первых, в своем коде позади я создаю три флажка и три эллипса:
for (int = 0; i < 3; i++){
CheckBox checkBox = new CheckBox();
checkBox.Style = (Style)this.FindResource("MyCheckBoxStyle");
checkBox.Name = "checkBox_" + i;
Path ellipsePath = new Path();
ellipsePath.Fill = Brushes.Gray;
EllipseGeometry ellipseGeometry = new EllipseGeometry();
ellipseGeometry.Center = new Point(0, 0);
ellipseGeometry.RadiusX = 2.5;
ellipseGeometry.RadiusY = 2.5;
ellipsePath.Data = ellipseGeometry;
ellipsePath.Name = "ellipse_" + i;
}
Теперь из стиля CheckBox:
<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="Gray"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" TargetName="Border" Value="Green"/>
<Setter Property="BorderBrush" TargetName="Border" Value="Green"/>
<Setter Property="Foreground" Value="Green"/>
<!-- Assumming the checkbox I'm checking is called "checkBox_1" I want to
be able to find the ellipse path whose name is "ellipse_1" and change
its style (for example, its color) -->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Идея состоит в том, что каждый флажок связан с одним эллипсом.Как говорится в комментарии, предполагая, что флажок, который я проверяю, называется checkBox_1
, я хочу иметь возможность найти элемент эллипса с именем ellipse_1
и изменить его стиль (например, его цвет).
Возможно ли это?
Редактировать
Из ваших ответов я вижу, что могу сделать это, если флажок и эллипс принадлежат одному и тому же шаблону.Проблема, которую я обнаружил (извините, я забыл упомянуть об этом) заключается в том, что в настоящее время я использую сетку, где одна из строк содержит эллипсы, а другая строка содержит флажки, которые создаются во время выполнения (именно поэтому я использовалкод позади):
![enter image description here](https://i.stack.imgur.com/nz501.png)