2012-01-26 16 views
0

BusyIndi​​catorがビジーでないときに表示する方法はありますか(IsBusy = 'false')? Silverlight BusyIndi​​catorをUserControlに追加した後は、大きな領域が使用され、他のすべてのコントロールが下に移動し、GUIはもう良くありません。私はそれが忙しい時に隠され、それが忙しい時に現れる必要がある。Silverlight BusyIndi​​cator

ありがとうございました。

CK

+0

あなたがやろうとしているもののいくつかのより多くのコードを表示することができます –

答えて

2

私は標準BooleanToVisiblityConverterを使用して、このようななどのIsBusyプロパティにVisibiltyを結合する:私は、ProgressBarをすることができますように、この例であるだけでなく、BusyIndi​​catorの両方を提供してきました

<Grid Height="500" Width="500" Background="Blue"> 
    <Grid.Resources> 
     <Converters:BoolToVisConverter x:Key="BoolToVis"/> 
    </Grid.Resources> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <StackPanel Width="75"> 
     <ToggleButton x:Name="BusyButton" Content="Toggle Busy State"/> 
     <ToggleButton x:Name="ProgressButton" Content="Toggle ProgressButton State"/> 
    </StackPanel> 
    <toolkit:BusyIndicator Grid.Row="1" IsBusy="{Binding IsChecked, ElementName=BusyButton}" 
          Visibility="{Binding IsBusy, RelativeSource={RelativeSource Self}}"/> 
    <ProgressBar Grid.Row="2" Width="120" Height="10" Margin="4 2" VerticalAlignment="Center" IsIndeterminate="True" 
       Visibility="{Binding IsChecked, ElementName=ProgressButton, Converter={StaticResource BoolToVis}}"/> 
</Grid> 

両方の動作を参照してください。

BooleanToVisibilityConverterはかなり標準であり、そのように実装されています

public class BoolToVisConverter : IValueConverter 
{ 
     #region IValueConverter Members 

     public virtual object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      if (value == null) return Visibility.Collapsed; 

      return (bool)value == true ? Visibility.Visible : Visibility.Collapsed; 
     } 

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

     #endregion 
} 
関連する問題