2012-07-17 103 views
1

WPF:我在進度條中有一個問題我希望它顯示操作沒有完成時,當我的操作完成時它會隱藏。請給我一個可以理解的例子,這樣我就可以將它應用到我的工作中。提前致謝!WPF進度條

+0

WPF與ASP.NET無關。不要濫用標籤。 – 2012-07-17 09:00:43

回答

2

你可以在不同的情況下做到這一點。

  1. 使用觸發器,(我要選擇一個)

    <ProgressBar Maximum="100" Margin="10,107,232,168" Value="0" Name="progr"> 
        <ProgressBar.Resources> 
         <Style TargetType="{x:Type ProgressBar}"> 
          <Style.Triggers> 
           <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Value}" Value="100"> 
            <Setter Property="Visibility" Value="Hidden"/> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </ProgressBar.Resources> 
    </ProgressBar> 
    
  2. 使用轉換器

    <Grid> 
    <Grid.Resources> 
        <delWpf:VisibilityConverter x:Key="conv"/> 
    </Grid.Resources> 
        <ProgressBar Name="prog2" Minimum="0" Maximum="100" 
         Value="{Binding CurrentIndex, UpdateSourceTrigger=PropertyChanged}" 
         Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Value, Mode=OneWay, Converter={StaticResource conv}}" /> 
    </Grid> 
    

和轉換器

public class VisibilityConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      return Math.Abs((double)value - 100) < 0.001 ? Visibility.Hidden : Visibility.Visible; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
+0

感謝您的回答,但是可以給我一個示例,當程序仍在讀取函數時,進度條不會停止,當函數停止時,進度欄將會隱藏。因爲這是我的確切情況。 。謝謝! – user27 2012-07-17 06:21:11

+0

我不確定我瞭解你。你想在函數啓動時顯示進度條,並在函數結束時隱藏它嗎?如果是這樣,你會有這樣的卑鄙: private void RefreshData() { progressBar.Value = 0; // ... progressBar.Value = 100; }。但這沒有多大意義,因爲你可以在這裏控制能見度。請詳細說明 – Artiom 2012-07-17 06:25:10

+0

我只想在操作未完成時顯示進度條,並在操作完成時隱藏進度條。 。對不起,如果你不能理解我,但謝謝你的時間。 – user27 2012-07-17 07:04:11

1

您可以使用具有BusyIndi​​cator控件擴展WPF工具包,

http://wpftoolkit.codeplex.com/wikipage?title=BusyIndicator

樣品包括在下載。

有關您的信息,Microsoft將首先在Silverlight中引入BusyIndi​​cator(但未能爲WPF裝運一個)作爲進度條的替代品。