Установка видимости для ThumbnailToolBarButton - PullRequest
0 голосов
/ 21 сентября 2011

На моем миниатюре окна есть несколько ThumbnailToolBarButtons. Одним из них является кнопка воспроизведения / паузы. На самом деле у меня есть две кнопки для этого ... одна для игры и одна для паузы. Когда я нажимаю кнопку, она скрывает одну и отображает другую, используя свойство Visible ThumbnailToolBarButton. Тем не менее, в то время как миниатюра окна открывается, если я нажимаю кнопку воспроизведения / паузы, ThumbnailToolBarButtons все становится очень широким, и вдруг я вижу только две кнопки. Если я позволю миниатюре окна исчезнуть и переверну ее снова, все мои кнопки вернутся и верной ширины. Что здесь происходит? Спасибо.

Обновление: ОК. Вот пример кода.

private ThumbnailToolBarButton buttonPrevious;
private ThumbnailToolBarButton buttonNext;
private ThumbnailToolBarButton buttonPlay;
private ThumbnailToolBarButton buttonPause;
private Boolean bPlaying = false;

private void Form1_Load(object sender, EventArgs e)
{
    buttonPrevious = new ThumbnailToolBarButton(Properties.Resources.previous, "Previous");
    buttonPrevious.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(buttonPrevious_Click);
    buttonPrevious.Visible = true;

    buttonNext = new ThumbnailToolBarButton(Properties.Resources.next, "Next");
    buttonNext.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(buttonNext_Click);
    buttonNext.Visible = true;

    buttonPlay = new ThumbnailToolBarButton(Properties.Resources.play, "Pause/Pause");
    buttonPlay.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(buttonPlay_Click);
    buttonPlay.Visible = true;

    buttonPause = new ThumbnailToolBarButton(Properties.Resources.pause, "Play");
    buttonPause.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(buttonPlay_Click);
    buttonPause.Visible = false;

    TaskbarManager.Instance.ThumbnailToolBars.AddButtons(this.Handle, buttonPrevious, buttonPlay, buttonPause, buttonNext);
}

private void buttonPlay_Click(object sender, ThumbnailButtonClickedEventArgs e)
{
    bPlaying = !bPlaying;

    buttonPlay.Visible = bPlaying ? false : true;
    buttonPause.Visible = bPlaying ? true : false;
}

1 Ответ

1 голос
/ 30 сентября 2011

Попробуйте объединить кнопки воспроизведения / паузы в одну кнопку и в обработчике события щелчка напишите:

if ( buttonPlayPause.Icon == Properties.Resources.play )
    buttonPlayPause.Icon = Properties.Resources.pause;
else
    buttonPlayPause.Icon = Properties.Resources.play;
...