Действительно WPF это лучшее, что было сделано в области GUI. Как не удивительно, но архитектура получилась на редкость удачно.
Короче спрошу о более земном:
1. Почему у TextBlock нет свойства Template ?
2. Хочу сделать презенташку для шефа. Замысел такой, в листбоксе выбираю эффект и прога должна его применить для TextBlock. Поскольку Template отсутствует пришлось извращаться...
DoubleAnimation last_da = null;
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string str = (comboBox1.SelectedValue as ComboBoxItem).Content.ToString();
if (last_da != null)
{
if (this.last_da.CanFreeze)
{
this.last_da.Freeze();
}
this.last_da = null;
}
if (this.textblock.RenderTransform != null)
{
if (this.textblock.RenderTransform.CanFreeze)
{
this.textblock.RenderTransform.Freeze();
}
this.textblock.RenderTransform = null;
}
if (str == "Rotate")
{
last_da = this.FindResource("Rotate") as DoubleAnimation;
RotateTransform rt = this.FindResource("MyRotateTransform") as RotateTransform;
rt = rt.Clone();
this.textblock.RenderTransform = rt;
rt.BeginAnimation(RotateTransform.AngleProperty, last_da);
}
else if (str == "Scroll")
{
last_da = this.FindResource("Scroll") as DoubleAnimation;
this.textblock.BeginAnimation(TextBlock.WidthProperty, last_da);
}
}
xaml ресурсов
<RotateTransform x:Key="RotateTransform" x:Name="RotateTransform" Angle="0" CenterX="230" CenterY="25"/>
<DoubleAnimation x:Key="Scroll"
From="300" To="0"
Duration="0:0:5"
RepeatBehavior="Forever"/>
<DoubleAnimation x:Key="Rotate"
From="0.0" To="360" Duration="0:0:10"
RepeatBehavior="Forever" />
Все вроде нормально но проблема в том что эффекты накладываются. Как видно пляски с DoubleAnimation.Freeze() и RenderTransform.Freeze() не помогают. После непродолжительных поисков я выяснил, что Storyboard имеет метод Stop(). НО! метод BeginAnimation инкапсулирует внутри себя создание Storyboard и нигде его не показывает, вопрос в том как его получить имея DoubleAnimation ?
3. Буду рад если ктонить поделится ссылками на интересные эффекты.
]]] Герои онлайн. Бесплатная Игра для фанатов Героев
Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 03 April 2008 20:35
|