2010-02-10 35 views
5

Tôi muốn chuyển đổi độ mờ của điều khiển (Nút, Hộp văn bản, Bảng điều khiển, v.v.) trong dự án WPF của tôi và muốn kiểm tra xem tôi đã thực hiện đúng chưa.Làm mờ bất kỳ điều khiển nào bằng cách sử dụng hoạt ảnh WPF

Câu hỏi của tôi là: Đây có phải là loại chức năng bạn thường viết trong XAML hay bạn sẽ sử dụng mã tương tự như dưới đây để đạt được kết quả mờ dần/mờ dần?

internal static class AnimationExtensions 
{ 
    internal enum TransitionSpeed 
    { 
     Instant = 0, 
     Fast = 100, 
     Normal = 200, 
     Slow = 500 
    } 

    /// <summary> 
    /// Toggles the opacity of a control. 
    /// </summary> 
    /// <param name="control">The control.</param> 
    internal static void ToggleControlFade(this Control control) 
    { 
     control.ToggleControlFade(TransitionSpeed.Normal); 
    } 

    /// <summary> 
    /// Toggles the opacity of a control. 
    /// </summary> 
    /// <param name="control">The control.</param> 
    /// <param name="speed">The speed.</param> 
    internal static void ToggleControlFade(this Control control, TransitionSpeed speed) 
    { 
     Storyboard storyboard = new Storyboard(); 
     TimeSpan duration = new TimeSpan(0, 0, 0, 0, (int)speed); // 

     DoubleAnimation animation = new DoubleAnimation { From = 1.0, To = 0.0, Duration = new Duration(duration) }; 
     if (control.Opacity == 0.0) 
     { 
      animation = new DoubleAnimation { From = 0.0, To = 1.0, Duration = new Duration(duration) }; 
     } 

     Storyboard.SetTargetName(animation, control.Name); 
     Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity", 0)); 
     storyboard.Children.Add(animation); 

     storyboard.Begin(control); 
    } 
} 

Như bạn có thể nói rất, rất mới đối với WPF.

Cảm ơn

Trả lời

1

tôi có xu hướng tìm ở những nơi mà tôi cần phải thực hiện một hành động sau khi một hình ảnh động hoặc trong trường hợp hình ảnh động phụ thuộc vào phức tạp gây rằng mã-đằng sau là nơi tốt nhất, nếu không XAML là một tốt nơi để đặt các hình ảnh động. (Tôi thường làm điều này cho những thứ như chuyển tiếp hoặc sự kiện 'onclick' đơn giản.

Các vấn đề liên quan