В Silverlight 4 как добавить кнопку отмены в элемент управления BusyIndicator? - PullRequest
1 голос
/ 05 января 2011

Полагаю, вы можете редактировать шаблон для BusyIndicator, однако у меня нет смеси выражений, и я не знаком с этим.У кого-нибудь есть образец XAML, с которого я мог бы начать?

Я предполагаю, что blend просто облегчает выполнение, но я не уверен, как начать со стандартного VS.NET.

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Нет необходимости использовать Expression Blend - вы можете просто предоставить элемент управления с BusyContentTemplate. Примеры Silverlight Toolkit демонстрируют это здесь: http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html. Копирование и вставка фрагмента из этих примеров:

<controlsToolkit:BusyIndicator IsBusy="True" DisplayAfter="0">
    <controlsToolkit:BusyIndicator.BusyContentTemplate>
        <DataTemplate>
            <StackPanel Margin="4">
                <TextBlock Text="Downloading Email" FontWeight="Bold" HorizontalAlignment="Center"/>
                <StackPanel Margin="4">
                    <TextBlock Text="Downloading message 4/10..."/>
                    <ProgressBar Value="40" Height="15"/>
                </StackPanel>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Button Grid.Column="0" Content="Pause" HorizontalAlignment="Right" Margin="0 0 2 0"/>
                    <Button Grid.Column="1" Content="Cancel" HorizontalAlignment="Left" Margin="2 0 0 0"/>
                </Grid>
            </StackPanel>
        </DataTemplate>
    </controlsToolkit:BusyIndicator.BusyContentTemplate>
</controlsToolkit:BusyIndicator>

Надеюсь, это поможет ...

Chris

1 голос
/ 05 января 2011

Этот xaml решает 2 проблемы, с которыми у меня были проблемы, используя стандартный образец XAML (опубликованный Крисом) из источников Toolkit.Я также упростил XAML, добавив кнопку Cancel .

  1. Привязка данных (см. Здесь: http://forums.silverlight.net/forums/p/163280/368692.aspx)
  2. Скрытие значения по умолчаниюИндикатор выполнения, b / c После того, как вы используете шаблон данных, вы должны использовать свой собственный индикатор выполнения, чтобы вы могли контролировать позиционирование

ПРИМЕЧАНИЕ. Я использую Caliburn Micro для MVVM, и если вы 'Если вы не используете MVVM, вы, вероятно, просто используете обычный обработчик событий нажатия кнопки Отмена.

Пример кода:

<Controls:BusyIndicator IsBusy="{Binding IsBusy}" BusyContent="{Binding}">
    <Controls:BusyIndicator.BusyContentTemplate>
        <DataTemplate>
            <StackPanel Margin="4">
                <TextBlock Text="{Binding BusyContent}" FontWeight="Bold" HorizontalAlignment="Center" Margin="2"/>
                <ProgressBar IsIndeterminate="True" Height="15" Margin="2"/>
                <Button cal:Message.Attach="CancelBusyIndicator()" Content="Cancel"  HorizontalAlignment="Right" Margin="2 2 2 2"/>
            </StackPanel>
        </DataTemplate>
    </Controls:BusyIndicator.BusyContentTemplate>
    <Controls:BusyIndicator.ProgressBarStyle>
        <Style TargetType="ProgressBar">
            <Setter Property="Visibility" Value="Collapsed"/>
        </Style>
    </Controls:BusyIndicator.ProgressBarStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...