Исчезает и исчезает тропинка в Серебряном свете?
У меня есть путь, определенный следующим образом:
<Viewbox Visibility="Collapsed" x:Name="Tick" Grid.Column="1" Grid.Row="1">
<Canvas MaxWidth="100" MaxHeight="100" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="100" Height="100" Canvas.Left="0" Canvas.Top="0">
<Path ...Fill="#FF00B800" x:Name="MyPath" (path dimensions, lines, etc) .../>
</Canvas>
</Viewbox>
Теперь то, что я хотел бы сделать, это манипулировать заполнением таким образом, что это приведет к тому, что путь будет иметь эффект затухания/затухания. В основном сделать заливки Альфа-компонент либо двигаться в сторону непрозрачного или прозрачного в зависимости от того, является ли поле просмотра путь внутри видимым. Поэтому, когда видимый путь исчезает, когда свернутый путь исчезает.1 ответ:
Эффект, которого вы пытаетесь достичь, классный, но есть серьезная проблема с вашим текущим планом. Когда
Visibilityэлемента более высокого уровня,Viewboxв этом случае, устанавливается вVisibility.Collapsed, Элемент и все подэлементы немедленно перестают быть видимыми. Именно в этот момент Вы хотите, чтобы началось затуханиеPath.Таким образом,
Pathуже не видно, и запуск анимации для постепенного уменьшения ее непрозрачности не принесет никакой пользы, потому что она уже исчезла. В других словом, к тому времени, когда видимость установлена вVisiblity.Collapsed, уже слишком поздно делать что-либо полезное с вещами внутри элемента, потому что пользователь их не увидит. Если бы вы могли, вы бы хотели заглянуть в будущее и знать, что вы собираетесь изменить видимость и запустить анимацию, чтобы она закончилась до того, как вы "закроете занавес" на элементе.Та же проблема не применима к тому, когда мы делаем элемент видимым, потому что все идеально: мы становимся видимыми и начинаем исчезающая анимация. Но поскольку половина эффекта не сработает, у нас все равно остается большая проблема.
Решение этой проблемы состоит в том, чтобы переместитьна уровень выше и посмотреть, что мы пытаемся сделать. В XAML у нас есть только пассивные элементы,
Viewbox,Canvas, иPath. Но, возможно, они действуют больше как элементы управления или вспомогательные элементы управления, например, будучи проверкой для элемента управленияCheckBoxили похожего на флажок элемента управления.Элемент управления может иметь состояния:
- нормальный, Наведение курсора мыши
- Нажата, Отключена
- Несфокусированный, Сфокусированный
И эти состояния могут иметь эффекты перехода, благодаря
Таким образом, если эффекты затухания и затухания являются частью управляющего поведения , то у нас есть целый сложный мощный набор инструментов, доступных для решения нашей проблемы. Я не знаю, так ли это в вашей ситуации.VisualStateManager.Даже если это не так, очень действенный подход к эффектам перехода на Silverlight заключается в том, чтобы преобразуйте свои элементы в бесформенный контроль, исключительно с целью использования
VisualStateManager, потому что это делает вещи настолько легкими. Возможно, эта альтернатива может сработать в вашей ситуации.