ссылка на элемент управления xaml по имени в коде xaml, а не в C #? - PullRequest
0 голосов
/ 04 июля 2011

Я только что понял, насколько удивителен Xaml (обычно я просто проектирую пользовательский интерфейс в визуальной студии).Я использую Expression Blend для выполнения всей своей работы, и я не уверен, могу ли я что-то сделать.

Я смотрел учебник на YouTube, о создании анимации, и хотел бы сделать что-то немного другое,Это связано с увеличением и уменьшением непрозрачности эллипса.Код, о котором идет речь:

<Canvas.Resources>
    <Storyboard x:Key="brighter">
        <DoubleAnimation 
        Storyboard.TargetName="ellipse"
        Storyboard.TargetProperty="Opacity"
        From="0.1" To="1.0" Duration="0:0:0.25"
        />              
    </Storyboard>       
    <Storyboard x:Key="dimmer">
        <DoubleAnimation 
        Storyboard.TargetName="ellipse"
        Storyboard.TargetProperty="Opacity"
        From="1.0" To="0.1" Duration="0:0:0.25"
        />              
    </Storyboard>       
</Canvas.Resources>

То, что я хочу, вместо 'From = "0.1" и "To =" 0.1 "', я хочу, чтобы он начинался с текущей или переходил к текущейзначение непрозрачности эллипса

, например:

From=ellipse.Opacity To='1.0'

Но я не знаю, можете ли вы сделать это в Xaml (я полагаю, что вы не можете).Можете ли вы сослаться на элемент управления xaml внутри самого xaml?

Спасибо

РЕДАКТИРОВАТЬ

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

From="0.1"

использование

From="{Binding ellipse.Opacity}" <!--ellipse is the name of the control you are referencing-->

1 Ответ

0 голосов
/ 05 июля 2011

Если я правильно помню, вы сможете удалить свойства "из". Таким образом, анимация всегда запускается от текущего значения до указанного значения. Что-то вроде:

<Canvas.Resources>
  <Storyboard x:Key="brighter">
    <DoubleAnimation
         Storyboard.TargetName="ellipse"
         Storyboard.TargetProperty="Opacity"
         To="1.0" Duration="0:0:0.25" />
  </Storyboard>
  <Storyboard x:Key="dimmer">
    <DoubleAnimation
         Storyboard.TargetName="ellipse"
         Storyboard.TargetProperty="Opacity"
         To="0.1" Duration="0:0:0.25" />
  </Storyboard>
</Canvas.Resources>
...