Как создать свойство пользовательского элемента управления для управления значением ключевого кадра раскадровки? - PullRequest
0 голосов
/ 30 августа 2011

В качестве вступления к пользовательским элементам управления я пытаюсь создать светодиодный пользовательский элемент управления. При добавлении LEDControl в мой xaml, я хочу иметь возможность указать цвет светодиода LEDColor. Я добавил две раскадровки для светодиода, TurnOn и TurnOff, которые анимируют цвет заливки прямоугольника между «off» (серый) и «on» (LEDColor).

Как динамически указать цвет, который раскадровка будет использовать для значения «Кому»?

Обратите внимание, я использую Silverlight для Windows Phone. На данный момент я нацеливаюсь на wp7, но открыта для решений Mango, если это имеет смысл.

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Очень просто, вы просто устанавливаете значение, как и любое другое с раскадровкой.

Здесь я использовал {StaticResource LEDColor} для цвета. Просто имейте в виду, это должна быть кисть, а не цвет.

Он изменяет Rectagle с именем LEDControl и имеет 0.5 секундное время анимации.

<Storyboard x:Name="TurnOn">
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
        <DiscreteObjectKeyFrame KeyTime="0" Value="Grey"/>
    </ObjectAnimationUsingKeyFrames>
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
        <DiscreteObjectKeyFrame KeyTime="0.5" Value="{StaticResource LEDColor}"/>
    </ObjectAnimationUsingKeyFrames>
</Storyboard>

<Storyboard x:Name="TurnOff">
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource LEDColor}"/>
    </ObjectAnimationUsingKeyFrames>
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
        <DiscreteObjectKeyFrame KeyTime="0.5" Value="Grey"/>
    </ObjectAnimationUsingKeyFrames>
</Storyboard>
0 голосов
/ 30 августа 2011

Возможно, вам нужно быть более точным, задавая вопросы.

но если вы говорите о том, кем я вас считаю, вы сможете изменить состояние с помощью действия раскадровки, поэтому при вызове этого действия раскадровка также изменит цвет заливки.

поэтому при записи действия для StoryBoard на ON StoryBoard также меняйте цвет на панели свойств.

Это, конечно, если вы используете смесь 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...