2014-09-03 3 views
1

У меня есть Grid который я способен оживить следующим образом:Animate ширина WPF левосторонний

Normal state image right

При нажатии на изображение, я могу оживить шаблон моей кнопки с раскадровки расти столько, сколько я хочу, в результате, как это:

enter image description here

это было бы результатом более или менее. Анимация выглядит следующим образом:

<Storyboard x:Key="ExpandPanelRight"> 
    <DoubleAnimation 
     Storyboard.TargetName="ExpandablePanel" 
     Storyboard.TargetProperty="Width" 
     BeginTime="0:0:0" 
     From="0" To="450" Duration="0:0:0.5"></DoubleAnimation> 
</Storyboard> 

Как вы можете видеть, никаких проблем при выращивании сетки слева направо, но то, что я действительно хочу, не наоборот: расширить сетку справа налево:

enter image description here

Как это будет? Я не могу найти ответ.

+0

Не думайте, что решение находится в вашей анимации, но в вашем макете сетки. Где-то HorizontalAlignment = «Право» должно вступить в игру. –

ответ

1

Все, что вам нужно сделать, это выровнять ваш контейнер Image с правой стороны вашего ExpandablePanel. Как только вы это сделаете, Image будет придерживаться правой стороны, так как увеличивается Width из Panel. ваш код Storyboard и DoubleAnimation может оставаться прежним. Ваш код должен выглядеть примерно так:

<Border CornerRadius="10" Background="Blue"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
      <ColumnDefinition Width="Auto" /> 
     </Grid.ColumnDefinitions> 
     <TextBlock Text="Expanding...." VerticalAlignment="Center" /> 
     <Image Source="Images/Bin.png" VerticalAlignment="Center" HorizontalAlignment="Right" /> 
    </Grid> 
</Border> 
+0

Это может быть решение, но мое не «расширитель», это грид с некоторыми элементами ... Вы рекомендуете использовать 'Expanders' вместо' Grid' для этого? – Sonhja

+0

Нет необходимости использовать элемент управления «Expander». «Ширина» любого элемента управления может быть анимирована. * Если * вы использовали вышеуказанный код, вы могли бы анимировать 'Border.Width' так же легко. – Sheridan

+0

Отлично! Это точно! Спасибо!! – Sonhja

Смежные вопросы