Установка содержимого ScatterViewItem в зависимости от размера - PullRequest
1 голос
/ 20 января 2011

Я зарегистрировал SizeChangedHandler на своем ScatterViewItem:

private void MethodBoxScatterSizeChanged(object sender, SizeChangedEventArgs args)
        {
            if (args.NewSize.Width < 150 && args.NewSize.Height < 150)
            {
                ScatterViewItem svi = sender as ScatterViewItem;

                TextBox txt = new TextBox();
                txt.Text = "Test";
                txt.Tag = svi.Content;
                svi.Content = txt;
                args.Handled = true;
            }
            else if (args.PreviousSize.Width < 150 && args.PreviousSize.Height < 150 && args.NewSize.Height > 150 && args.NewSize.Width > 150)
            {
                ScatterViewItem svi = sender as ScatterViewItem;
                FrameworkElement old = (svi.Content as FrameworkElement).Tag as FrameworkElement;
                svi.Content = old;
                args.Handled = true;
            }
        }

Как видите, я хочу установить Test в качестве содержимого ScatterViewItem, если оно маленькое, и исходного содержимого, если оно снова больше,Но как только я уменьшил его, он всегда остается тестовым путем.Что я делаю не так?

1 Ответ

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

в операторе if вы не проверяете, переключились ли вы уже на «Test».так что если вы получите два события, говорящие о том, что его размер был меньше 150x150, то для content.Tag будет задано значение «Test», которое вы извлекаете при изменении размера до> 150x150

.
...