2012-07-02 38 views
7

Tôi đã tìm thấy một vài ví dụ để hiển thị tiến trình mà thanh tiến trình và bánh xe được sử dụng; Tôi chỉ có thể tìm thấy một ví dụ javascript để hiển thị dấu chấm lửng (dấu chấm chấm) để tham chiếu tiến trình do đó tôi đã nghĩ đến việc đặt câu hỏi này. Ứng dụng của tôi không phải là rất phức tạp - nó chỉ có một vài hộp kiểm và một nút. Gần đây, nhóm của tôi đã yêu cầu tăng cường và cũng muốn đơn giản hóa nó.Hiển thị tiến trình chấm chấm chấm trong một nút WPF

Có nút có tên 'GO' mà người dùng nhấp vào sau khi định cấu hình cài đặt được yêu cầu. Mã đằng sau nó cũng thực sự đơn giản - nó vô hiệu hóa nút sau khi sự kiện nhấp và cuộc gọi là một exe độc ​​lập sử dụng ProcessStartInfo thực hiện ba hành động 'reconcle', 'post' và 'publish'. Tôi sử dụng phương thức WaitForExist() để bật lại nút.

Tôi đã được nhóm của tôi yêu cầu hiển thị 'quy trình hiện tại' trên nút. Họ chỉ muốn văn bản nút hiển thị Hòa giải. Reconciling .. Reconciling ... (đều đặn nói, 1 giây) tiếp theo là Posting và Publishing theo cách tương tự.

Thật tuyệt khi biết cách thích hợp nhất để đạt được điều này. Cảm ơn trước.

Trả lời

9

Cách đơn giản nhất để thực hiện việc đó là sử dụng ObjectAnimationUsingKeyFrames. Đặt TargetProperty trên Nội dung và đặt Value của mỗi DiscreteObjectKeyFrame thành Reconciling. Reconciling.. Reconciling....

Ví dụ cho một ControlTemplate với một ContentPresenter tên PART_Content:

<ControlTemplate.Triggers> 
    <Trigger Property="IsEnabled" Value="False"> 
     <Trigger.EnterActions> 
      <BeginStoryboard> 
       <Storyboard> 
        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_Content" Storyboard.TargetProperty="Content" Duration="00:00:00.8" RepeatBehavior="Forever"> 
         <DiscreteObjectKeyFrame KeyTime="00:00:00.0" Value="Loading"/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:00.2" Value="Loading."/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:00.4" Value="Loading.."/> 
         <DiscreteObjectKeyFrame KeyTime="00:00:00.6" Value="Loading..."/> 
        </ObjectAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </Trigger.EnterActions> 
    </Trigger> 
</ControlTemplate.Triggers> 
+0

Thanks a lot. Tôi sẽ cố gắng thực hiện điều này và cho bạn biết nếu tôi cần thêm trợ giúp. Tuy nhiên; kể từ khi tôi bị treo WinForms; Tôi đã hy vọng rằng giải pháp sẽ được xử lý nhiều hơn trong mã chứ không phải là xaml. –

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