Можно ли адресовать элементы, созданные с помощью ControlTemplate, которые не имеют имени в stlye?Практическое руководство. Доступ к элементам управления ControlTemplate, которые не имеют имени в стиле
Ниже приводится выдержка из шаблона управления по умолчанию в виде МОФ комбобокса:
<?xml version="1.0" encoding="utf-8"?>
<ControlTemplate TargetType="ComboBox" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:mwt="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Name="MainGrid" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="0" MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" />
</Grid.ColumnDefinitions>
<Popup IsOpen="False" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" AllowsTransparency="True" Name="PART_Popup" Margin="1,1,1,1" Grid.ColumnSpan="2">
</Popup>
<ToggleButton IsChecked="False" BorderBrush="{TemplateBinding Border.BorderBrush}" Background="{TemplateBinding Panel.Background}" Grid.ColumnSpan="2">
</ToggleButton>
<ContentPresenter Content="{TemplateBinding ComboBox.SelectionBoxItem}" ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}" ContentStringFormat="{TemplateBinding ComboBox.SelectionBoxItemStringFormat}" Margin="{TemplateBinding Control.Padding}" HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" IsHitTestVisible="False" />
</Grid>
</ControlTemplate>
Теперь то, что я хочу сделать, это изменить IsHitTestVisible свойства ContentPresenter (который не имеет имени в ControlTemplate) до истины, например:
<ComboBox>
<ComboBox.Resources>
<Style TargetType="{x:Type ContentPresenter}" >
<Setter Property="IsHitTestVisible" Value="True" />
</Style>
</ComboBox.Resources>
</ComboBox>
К сожалению, это не работает. Возможно ли это?
Если нет, это может быть сделано с помощью кода?