Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# WPF Координаты элемента в окне контрола. https://www.cyberforum.ru/ wpf-silverlight/ thread316837.html
Здравствуйте, друзья! Я в програмировании я новичок. Возникла такая трудность: каким образом можно узнать или назначить координаты положения текста в окне контрола, у которого включен скролинг? Объясню для чего мне это нужно. Есть текст состоящий из параграфов, созданных програмно. Есть так же меню с кнопками, кликая по котором пользователь должен попадать к нужному параграфу. Так вот, для...
C# WPF Как сделать убегающую от мыши форму?
Подскажите как сделать убегающую от мыши форму. Так не работает: private void Window1_MouseEnter(object sender, EventArgs e) { Random rnd = new Random(); Location = new Point( rnd.Next(0, this.Width - 50), rnd.Next(0, this.Height - 50)); }
C# WPF Динамическое создание рисунка при нажатии на кнопку https://www.cyberforum.ru/ wpf-silverlight/ thread316749.html
При нажатии на кнопку должен появляться рисунок и двигаться в заданном направлении(с использованием уже готового Storyboard). Вопрос, как создавать объекты динамически, при каком-либо событии, в частности при нажатии на кнопку и как грамотно при создании задавать урл рисунку. Спасибо.
C# WPF Таймер https://www.cyberforum.ru/ wpf-silverlight/ thread316609.html
Собственно как запустить таймер? Добавил сам таймер с именем tm1. Создал метод tm1_Tick. Кинул в него код, в метод Window_Loaded дописал: tm1.Interval = 60000//это же одна минута? tm1.Enabled = true; tm1.Start();//Поидее должен работать да? И ничего не работает)
C# WPF Приклеевание объектов средствами Silverlight 4
Вот появилась интересная задача, хотелось бы узнать возможно ли это сделать средствами SL4. Когда один объект пересекает бордер другого, то склеить их. Лучше 1 раз увидеть, чем 100 раз прочитать мои не понятные мысли)э
C# WPF polygon - штриховка https://www.cyberforum.ru/ wpf-silverlight/ thread316413.html
Вот это действительно сложный вопрос кто знает как сделать примеры штриховки в комбобоксе для полигона и их применения.
C# WPF polygon - фон https://www.cyberforum.ru/ wpf-silverlight/ thread316395.html
подскажите какое свойство отвечает за цвет фона polygon Добавлено через 54 минуты офф топ ответ- Fill
C# WPF Создать элемент типа Path
При вводе Path myPath = new Path(); visual studio подсказывает, неоднозначное имя: выберите из следующего Shapes, IO. Как выбрать?
C# WPF DataGridRow Binding Opacity https://www.cyberforum.ru/ wpf-silverlight/ thread316131.html
Подскажите как прибиндить Opacity к строке ДатаГрида? Пробовал так, но выдает ошибку: "Задание свойства "" породило исключение" <sdk:DataGrid x:Name="_DtGrid"> <sdk:DataGrid.RowStyle> <Style TargetType="data:DataGridRow"> <Setter Property="Opacity" Value="{Binding Path=Opacity}" /> <Setter...
C# WPF Извлечь файл из ресурсов в WPF приложении Народ, помогите, как мне извлечь файл из ресурсов? Я пробовал так, но не пашет, точнее копирует, но файл уже не работает. Копировал текстовый файл, после копирования он такого же размера, но пустой (без текста): private void CopyDatabaseFromResource(String destinationPath) { Uri uri = new Uri(@"pack://application:,,,/Resources/Data.accdb", UriKind.Absolute); ... https://www.cyberforum.ru/ wpf-silverlight/ thread315876.html
как динамически создавать элементы при анимации (Silverlight 3 & Blend 3) C# WPF
задача: реализовать выброс фишек, как в покере, причем количество фишек должно соответствовать сумме денег, то есть нужно создавать фишки при анимации и после этого складывать их в стопку. Вот задача сложить их в стопку особенно проблематична для меня, поскольку помимо динамического создания элементов нужно еще и сделать вид, что они расположены друг над другом. Поделитесь идеями, в голову...
C# WPF Itil v3 https://www.cyberforum.ru/ wpf-silverlight/ thread315705.html
Кто может подсказать что это за зверь и с чем его едят? (к нему подавать белое или красное вино?) В общем мне дали задание разработать Система отслеживания заявок в службу поддержки, и что бы она соответствовала системе Itil!!!!
15 / 15 / 4
Регистрация: 04.10.2010
Сообщений: 574
0

adorner - C# WPF - Ответ 1745855

10.06.2011, 07:40. Показов 1361. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите где не правильно

Название: 94ba7378199bt.jpg
Просмотров: 161

Размер: 2.6 Кб

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Documents;
using System.Windows;
using System.Windows.Media;
using System.Windows.Controls.Primitives;
using System.Windows.Controls;
using System.Windows.Input;
 
 
namespace xxx
{
    class SimpleAdorner : Adorner
    {
        Thumb topLeft, topRight, bottomLeft, bottomRight;
 
        VisualCollection visualChildren;
 
        public SimpleAdorner(UIElement adornedElement)
            : base(adornedElement)
        {                
            visualChildren = new VisualCollection(this);
 
            BuildAdornerCorner(ref topLeft, Cursors.SizeNWSE);
            BuildAdornerCorner(ref topRight, Cursors.SizeNESW);
            BuildAdornerCorner(ref bottomLeft, Cursors.SizeNESW);
            BuildAdornerCorner(ref bottomRight, Cursors.SizeNWSE);
 
            bottomLeft.DragDelta += new DragDeltaEventHandler(HandleBottomLeft);
            bottomRight.DragDelta += new DragDeltaEventHandler(HandleBottomRight);
            topLeft.DragDelta += new DragDeltaEventHandler(HandleTopLeft);
            topRight.DragDelta += new DragDeltaEventHandler(HandleTopRight);
        }
 
        void HandleBottomRight(object sender, DragDeltaEventArgs args)
        {
            FrameworkElement adornedElement = this.AdornedElement as FrameworkElement;
            Thumb hitThumb = sender as Thumb;
 
            if (adornedElement == null || hitThumb == null) return;
            FrameworkElement parentElement = adornedElement.Parent as FrameworkElement;
 
            EnforceSize(adornedElement);
            adornedElement.Width = Math.Max(adornedElement.Width + args.HorizontalChange, hitThumb.DesiredSize.Width);
            adornedElement.Height = Math.Max(args.VerticalChange + adornedElement.Height, hitThumb.DesiredSize.Height);
        }
 
        void HandleTopRight(object sender, DragDeltaEventArgs args)
        {
            FrameworkElement adornedElement = this.AdornedElement as FrameworkElement;
            Thumb hitThumb = sender as Thumb;
 
            if (adornedElement == null || hitThumb == null) return;
            FrameworkElement parentElement = adornedElement.Parent as FrameworkElement;
 
            EnforceSize(adornedElement);
 
            adornedElement.Width = Math.Max(adornedElement.Width + args.HorizontalChange, hitThumb.DesiredSize.Width);
 
            double height_old = adornedElement.Height;
            double height_new = Math.Max(adornedElement.Height - args.VerticalChange, hitThumb.DesiredSize.Height);
            double top_old = Canvas.GetTop(adornedElement);
            adornedElement.Height = height_new;
            Canvas.SetTop(adornedElement, top_old - (height_new - height_old));
        }
 
        void HandleTopLeft(object sender, DragDeltaEventArgs args)
        {
            FrameworkElement adornedElement = AdornedElement as FrameworkElement;
            Thumb hitThumb = sender as Thumb;
 
            if (adornedElement == null || hitThumb == null) return;
 
            EnforceSize(adornedElement);
 
            double width_old = adornedElement.Width;
            double width_new = Math.Max(adornedElement.Width - args.HorizontalChange, hitThumb.DesiredSize.Width);
            double left_old = Canvas.GetLeft(adornedElement);
            adornedElement.Width = width_new;
            Canvas.SetLeft(adornedElement, left_old - (width_new - width_old));
            
            double height_old = adornedElement.Height;
            double height_new = Math.Max(adornedElement.Height - args.VerticalChange, hitThumb.DesiredSize.Height);
            double top_old = Canvas.GetTop(adornedElement);
            adornedElement.Height = height_new;
            Canvas.SetTop(adornedElement, top_old - (height_new - height_old));
        }
 
        void HandleBottomLeft(object sender, DragDeltaEventArgs args)
        {
            FrameworkElement adornedElement = AdornedElement as FrameworkElement;
            Thumb hitThumb = sender as Thumb;
 
            if (adornedElement == null || hitThumb == null) return;
 
            EnforceSize(adornedElement);
 
            adornedElement.Height = Math.Max(args.VerticalChange + adornedElement.Height, hitThumb.DesiredSize.Height);
 
            double width_old = adornedElement.Width;
            double width_new = Math.Max(adornedElement.Width - args.HorizontalChange, hitThumb.DesiredSize.Width);
            double left_old = Canvas.GetLeft(adornedElement);
            adornedElement.Width = width_new;
            Canvas.SetLeft(adornedElement, left_old - (width_new - width_old));
        }
 
        protected override Size ArrangeOverride(Size finalSize)
        {
            double desiredWidth = AdornedElement.DesiredSize.Width;
            double desiredHeight = AdornedElement.DesiredSize.Height;
            double adornerWidth = this.DesiredSize.Width;
            double adornerHeight = this.DesiredSize.Height;
 
 
            topLeft.Arrange(new Rect(-adornerWidth / 2, -adornerHeight / 2, adornerWidth, adornerHeight));
            topRight.Arrange(new Rect( adornerWidth / 2, -adornerHeight / 2, adornerWidth, adornerHeight));
            bottomLeft.Arrange(new Rect(-adornerWidth / 2, adornerHeight / 2, adornerWidth, adornerHeight));
            bottomRight.Arrange(new Rect(adornerWidth / 2, adornerHeight / 2, adornerWidth, adornerHeight));
            
            return finalSize;
        }
 
        void BuildAdornerCorner(ref Thumb cornerThumb, Cursor customizedCursor)
        {
            if (cornerThumb != null) return;
 
            cornerThumb = new Thumb();
            cornerThumb.Cursor = customizedCursor;
            cornerThumb.Height = cornerThumb.Width = 10;
            cornerThumb.Opacity = 0.40;
            cornerThumb.Background = new SolidColorBrush(Colors.MediumBlue);
 
            visualChildren.Add(cornerThumb);
        }
 
        void EnforceSize(FrameworkElement adornedElement)
        {
            if (adornedElement.Width.Equals(Double.NaN))
                adornedElement.Width = adornedElement.DesiredSize.Width;
            if (adornedElement.Height.Equals(Double.NaN))
                adornedElement.Height = adornedElement.DesiredSize.Height;
 
            FrameworkElement parent = adornedElement.Parent as FrameworkElement;
            if (parent != null)
            {
                adornedElement.MaxHeight = parent.ActualHeight;
                adornedElement.MaxWidth = parent.ActualWidth;
            }
        }
        protected override int VisualChildrenCount { get { return visualChildren.Count; } }
        protected override Visual GetVisualChild(int index) { return visualChildren[index]; }
    }
}


Вернуться к обсуждению:
adorner C# WPF
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2011, 07:40
Готовые ответы и решения:

WPF adorner
Люди объясните как обвести объект при нажатии на него с помощью adorner

0
10.06.2011, 07:40
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru