1
我想通過以下方式來更改所選的TabItem的寬度:WPF動畫:不能從屬性綁定到ActualWidth的
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid x:Name="Root">
<Border x:Name="Border" Background="{TemplateBinding Background}">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Stretch" ContentSource="Header" Margin="12,2,12,2"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Width"
From="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}, Mode=FindAncestor}, Path=ActualWidth}"
To="200"
Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
我被迫指定「從」屬性爲因爲我沒有明確指定TabItem的「Width」屬性,所以它由自定義佈局容器計算。 但是當我嘗試將動畫的「From」屬性綁定到TabItem的「ActualWidth」屬性時,「System.Windows.Controls.TabItem」的初始化引發異常。我試圖移動「ControlTemplate」部分中的「觸發器」部分,但沒有任何效果。所以我有兩個問題:
1)爲什麼不能以我的方式將「From」屬性綁定到TabItem的ActualWidth?
2)我該如何達到理想的行爲?
任何提示將不勝感激。
如果不指定'From',它是如何使用的行爲? – Sankarann
@Sankarann,它引發異常「無法使用'System.Windows.Media.Animation.DoubleAnimation'在'System.Windows.Controls.TabItem'上爲'Width'屬性設置動畫。 – undermind
硬編碼中的某些值,工作正常嗎? – Sankarann