2010-05-16 36 views
10

Đây phải là câu hỏi đơn giản nhất, nhưng tôi không thể hiểu được. Tôi có thanh tiến trình tại chỗ, làm thế nào để làm cho nó hiển thị tiến bộ. Làm thế nào để tôi bắt đầu điều này?Làm thế nào để bạn hiển thị tiến trình khi Indeterminate = "True" trong thanh tiến trình WPF?

<ProgressBar x:Name="ProgressUpload" Margin="5" IsIndeterminate="True" ></ProgressBar> 
+1

Tại sao bạn có 'IsIndeterminate =" True "' ở vị trí đầu tiên? –

Trả lời

21

Nếu bạn đặt IsIndeterminate thành True, tiến trình có nghĩa là đang diễn ra nhưng bạn không thể xác định thời lượng chính xác. Vì vậy, tôi chỉ có thể cho bạn biết để đặt nó thành false và sử dụng thanh tiến trình trong hành vi "chuẩn" của nó.

+0

Vấn đề tôi đang chiến đấu là làm cách nào để bạn bắt đầu hoạt ảnh đó. Tôi có thanh được xác định và IsIndeterminate = "True". Làm thế nào để kích hoạt thanh để làm điều đó? – user38349

+9

Bí quyết tôi đang tìm kiếm là tôi phải đặt Giá trị tối thiểu và Giá trị tối đa và chiều cao.Sau khi tôi đặt những thứ này được hiển thị. – user38349

15

Chỉ cần đặt nếu bạn đang cố gắng bắt đầu thanh tiến trình, nhưng dưới dạng thanh không xác định, thì bạn phải đặt thuộc tính IsIndeterminate thành true khi sẵn sàng và thành false khi hoàn tất.

Vì vậy, nói cách khác:

pbar.IsIndeterminate = true; //This starts your bar's animation 
pbar.IsIndeterminate = false; //This stops your bar's animation 

Để cung cấp cho bạn bối cảnh là tại sao bạn lại muốn làm theo cách nhìn này mã giả sau đây:

//Some method that is going to start something that is going to take a while 
public void StartLongRunningProcess() 
{ 
    //Make a call to a web service asynchronously etc... 

    //Start the animation for your progress bar 
    pbar.IsIndeterminate = true; 
} 

//The method (delegate) that handles the result, usually from an event. 
//This method will handle the result of the asynchronous call 
public void HandlerForLongRunningProcess() 
{ 
    //Do stuff with result from your asynchronous web service call etc... 

    //Stop the animation for your progress bar 
    pbar.IsIndeterminate = false; 
} 

Hãy để tôi là người đầu tiên để nói rằng tôi không chắc chắn nếu đây là mục đích sử dụng của tài sản này, nhưng tôi có thể nói nó chắc chắn hoạt động.

+0

Tôi đang bối rối về cách thêm lệnh Không đồng bộ vào thanh tiến trình của tôi bằng MVVM: http://stackoverflow.com/questions/25021838/indeterminate-progress-bar –

1

Dường như trong một số môi trường Chiều cao phải được đặt rõ ràng cho hoạt ảnh không xác định để chạy, trong khi ở những người khác không cần thiết.

0

Không đặt thành IsIndeterminate trong quá trình khởi tạo (tức là thiết kế giao diện người dùng trong XAML hoặc hàm tạo ở phía mã) của cửa sổ sở hữu nó. Nếu bạn làm vậy thì hoạt ảnh sẽ không bắt đầu. Đặt nó trong trình xử lý sự kiện 'Đã tải'.

tôi sẽ phải IsIndeterminate = 'False' ở phía bên XAML, và sau đó trong Window_Loaded sự kiện, hãy đặt:

myProgressBar.IsIndeterminate = true; 
0

Sự chỉnh sửa có của vấn đề là chỉ đơn giản là hiển thị hoặc ẩn điều khiển ProgressBar:

progressBar.Visibility = Visibility.Visible; 

progressBar.Visibility = Visibility.Collapsed; 
0

Đây không phải là sự khác biệt thực sự so với @dyslexicanaboko ở trên, nhưng thật nhanh chóng và dễ dàng để thực hiện một cuộc biểu tình mà bạn có thể kiểm soát:

Trong XAML:

<Button Content="Start Process" HorizontalAlignment="Center" Click="StartAProcess"/> 
<Button Content="Stop Process" HorizontalAlignment="Center" Click="StopAProcess"/> 
<ProgressBar Name="pBar1" Height="20"/> 

trong mã sau:

Public Sub StartAProcess() 
    pBar1.IsIndeterminate = True 
End Sub 

Public Sub StopAProcess() 
    pBar1.IsIndeterminate = False 
End Sub 

Khi nhấp vào nút Process Bắt đầu hoạt hình sẽ bắt đầu và tiếp tục cho đến khi nút Process Dừng được nhấp. Nó phải rõ ràng, nhưng tùy chọn IsIndeterminate không phải là thực hành UI tốt; tốt hơn để thực sự cập nhật giá trị, nhưng đối với những người muốn xem hoạt động này ...

0

Cũng đảm bảo rằng CacheMode = "BitmapCache" không được đặt thành trang của bạn - nếu không hoạt ảnh sẽ không chạy. Nó chỉ hiển thị bitmap được lưu trong bộ nhớ cache ...

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