Изменить свойство дочернего элемента управления (contentcontrol) при наведении курсора на родительский элемент
Я новичок в WPF и не могу понять, как изменить свойство ребенка ContentControl
из Button
контроль над мышью. Мой код выглядит примерно так:
<Button x:Name="btnAddItem" Height="25" Width="25" Margin="5,0,0,0"
Style="{DynamicResource btnStyle}" ToolTip="Add Item">
<ContentControl Content="ContentControl" Height="20" Width="20"
Template="{DynamicResource contentTemplate}" />
</Button>
Теперь, когда в MouseOver
событие Button
Я хотел бы изменить размер Button
а также размер ребенка ContentControl
, ContentControl
на самом деле содержит векторное изображение для Button
, Пожалуйста помоги.
2 ответа
Ваш Button
автоматически растянется по размеру содержимого, поэтому избавьтесь от Height
а также Width
свойства. Если вы хотите сохранить пространство между краем кнопки и ContentControl, используйте ContentControl Margin
имущество.
Затем используйте DataTrigger
в вашем ContentControl's Style
изменить Height
/Width
когда мышь над ним. Убедитесь, что вы установили Height
/Width
в вашем стиле, а не в вашем <ContentControl>
тэг, потому что если вы установите его в тэге, он будет иметь приоритет над сработавшим значением, поэтому никогда не изменится.
<Style x:Key="MyContentControlStyle" TargetType="{x:Type ContentControl}">
<Setter Property="Height" Value="20" />
<Setter Property="Width" Value="20" />
<Setter Property="Margin" Value="5" />
<Setter Property="Content" Value="ContentControl" />
<Setter Property="Template" Value="{DynamicResource contentTemplate}" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=btnAddItem, Path=IsMouseOver}" Value="True">
<Setter Property="Height" Value="20" />
<Setter Property="Width" Value="20" />
</DataTrigger >
</Style.Triggers>
</Style>
<Button x:Name="btnAddItem" Height="25" Width="25" Margin="5,0,0,0"
Style="{DynamicResource btnStyle}" ToolTip="Add Item">
<ContentControl Style="{StaticResource MyContentControlStyle}" />
</Button>
Чтобы добиться того, чего я хотел, я воспользовался советом Рэйчел и Сэмюэля Слэйда. Я сделал это примерно так:
<Button x:Name="btnEditItem" Style="{DynamicResource btnStyle}" Margin="5,0,0,0" ToolTip="Edit Item" Click="btnEditItem_Click">
<ContentControl x:Uid="ContentControl_5" Content="ContentControl" Template=" {DynamicResource contentTemplate}" Margin="2.5"/>
</Button>
И я устанавливаю высоту и ширину кнопки через btnStyle через свойство Setter и изменяю высоту и ширину кнопки через триггеры.
Это заставило меня работать отлично. Я ценю все ваши предложения помощи. Я не уверен, что смог бы прийти к такому выводу, поскольку думал о другом маршруте свойства дочерних элементов управления. Еще раз спасибо.