Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Cursors


Автор: DenWPF 25.8.2010, 00:12
нужно было что бы при долгом ответе с сервера появлялся у курсора значек Ожидания.

Mouse.OverrideCursor = Cursors.Wait;
processing...
Mouse.OverrideCursor = Cursors.Arrow;


были не большие проблемы, Mouse.OverrideCursor = Cursors.Arrow; - не всегда срабатывало.
решил проблему:

Код

try
{
Mouse.OverrideCursor = Cursors.Wait;
processing...
}
catch{}
finally
{
    Mouse.OverrideCursor = null;
}


с этим все хорошо, но теперь хочется что бы рядом с курсором была надпись, к примеру "Загрузка..." как это сделать?

Автор: CasperSC 25.8.2010, 02:30
Короче тут на скорую руку слеплено, думаю сам дальше сможешь сделать, если конечно этот способ тебе подойдёт:
Код

            //Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait;
            GradientStopCollection gradientStopCollection = new GradientStopCollection(2);
            GradientStop GradientStop1 = new GradientStop(Colors.Chocolate, 0.5);
            GradientStop GradientStop2 = new GradientStop(Colors.DarkBlue, 0.5);
            gradientStopCollection.Add(GradientStop1);
            gradientStopCollection.Add(GradientStop2);
            LinearGradientBrush lgb = new LinearGradientBrush(gradientStopCollection);

            TextBlock txtBlock = new TextBlock();
            txtBlock.Text = "Пожалуйста подождите...";
            txtBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            txtBlock.Margin = new Thickness(10, 0, 0, 0);

            Grid gridMain = new Grid();
            gridMain.Children.Add(txtBlock);

            Window winToolTip = new Window();
            //winToolTip.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
            //winToolTip.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
            winToolTip.Background = lgb;
            winToolTip.Width = 160;
            winToolTip.Height = 20;
            winToolTip.Owner = this;
            winToolTip.Content = gridMain;
            winToolTip.WindowStyle = System.Windows.WindowStyle.None;
            winToolTip.WindowState = System.Windows.WindowState.Normal;
            winToolTip.ResizeMode = System.Windows.ResizeMode.NoResize;

            winToolTip.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
            winToolTip.Show();


Я конечно многого не пробовал. Возможно подойдёт UserControl или Сделай окно готовое, чтобы кодом не лепить, а потом выводи как подсказку. Можно на событие как нибудь прилепить форму к курсору. Если что нибудь получится, выложи тут, тоже интересно. Ещё можно как то сделать, чтобы форма подгоняла свой размер под содержимое.

Автор: Kefir 25.8.2010, 17:47
Можно и окном, конечно, но мне кажется проще и быстрее через Popup. Обрабатывать MouseMove окна и выставлять оффсеты попапа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)