我想了解如何將作爲ControlTemplate一部分的對象的不透明度綁定到屬於另一個ControlTemplate一部分的對象。 我試過這個,但它沒有做任何事情。如何基於另一個ControlTemplate中對象的不透明度來綁定不透明度值?
Image x:Name="PART_IconHover" Source="{Binding IconHover}" Opacity="{Binding Opacity, ElementName=border, Mode=OneWay}" />
下面是二CONTROLTEMPLATES的代碼:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="#FF6E6E6E" BorderThickness="0.5" Opacity="0" Background="#00000000">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="border">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed"/>
<VisualState x:Name="Disabled"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true"/>
<Trigger Property="ToggleButton.IsChecked" Value="true"/>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
我想的不透明度在控件模板圖像結合下面
<ControlTemplate x:Key="ThumbnailContainerTemplate" TargetType="{x:Type ContentControl}">
<Border x:Name="PART_Border" BorderThickness="1" BorderBrush="#FFd9d9d9" Opacity="0" />
<Grid Margin="10">
<Image x:Name="PART_IconHover" Source="{Binding IconHover}" Opacity="{Binding Opacity, ElementName=border, Mode=OneWay}" />
</Grid>
任何ID eas非常感謝。先謝謝你!
謝謝你的幫助。這是一個有效的觀點。我會嘗試在我的示例中實現它。如果我能成功,我會讓你知道的。 – vladc77 2010-12-17 20:57:13
@ vladc77:是的,希望它會!我發佈的代碼來自您製作的問題的示例應用程序,它適用於我。這不是一個非常動態的解決方案,但如果你只是需要在一個或兩個地方,那應該不是一個問題:) – 2010-12-17 21:51:42
我需要在動態創建的控件上有這種行爲。我唯一擔心的是它是否會改變運行時創建的其他控件的不透明度。 – vladc77 2010-12-18 00:21:26