Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507

Обращение к стилям элемента

06.08.2011, 22:45. Показов 3193. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код, вроде такого:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<Ellipse Height="40" HorizontalAlignment="Left" Margin="25,221,0,0" Name="ellipse1" VerticalAlignment="Top" Width="40" StrokeThickness="2">
                    <Ellipse.Fill>
                        <RadialGradientBrush>
                            <GradientStop Color="#FFF2A800" Offset="0" />
                            <GradientStop Color="#FFFFC400" Offset="1" />
                        </RadialGradientBrush>
                    </Ellipse.Fill>
                    <Ellipse.Stroke>
                        <RadialGradientBrush>
                            <GradientStop Color="#55000000" Offset="0.9" />
                            <GradientStop Color="White" Offset="1" />
                        </RadialGradientBrush>
                    </Ellipse.Stroke>
                    <Ellipse.Effect>
                        <DropShadowEffect Opacity="0.625" Color="#FFFFFFFF" BlurRadius="15" ShadowDepth="0" Direction="312"/>
                    </Ellipse.Effect>
                </Ellipse>
При наведении на кнопку нужно изменять DropShadowEffect Opacity
Всю голову сломал, как только не извращался
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2011, 22:45
Ответы с готовыми решениями:

Доступ к стилям
Почему вот такое не работает, я имею ввиду стиль не действует на текст, и текст даже не отображается. &lt;html&gt; &lt;head&gt; ...

Обращение к значению элемента
Всех приветствую!Подскажите пожалуйста,как обратится к значению элемента цикла (i)?!Что необходимо ещё создать? Например цикл for...

Дурацкий вопрос по стилям
Когда сажаю текст в тэги h1 - он получается как будто бы для слабовидящих ((( Но видел на других сайтах, как текст в тэге h1 выглядит...

9
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
06.08.2011, 23:25
ushim, может лучше изменять прозрачность эллипса, а не DropShadowEffect
0
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
06.08.2011, 23:41  [ТС]
Eugene22, нет, мне нужно убирать тень и добавлять её. А сам эллипс должен быть видимый. Конечно можно сделать два эллипса, с тенью и без... но я не хочу так делать
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
07.08.2011, 11:33
ushim, если я правильно понял,то как-то так -
эту строку
XML
1
<DropShadowEffect Opacity="0.625" Color="#FFFFFFFF" BlurRadius="15" ShadowDepth="0" Direction="312"/>
меняешь на <DropShadowEffect x:Name="effect" Opacity="0.925" BlurRadius="15" ShadowDepth="0" Direction="312" />
и прописываешь у эллипса событие MouseEnter="ellipse1_MouseEnter"
в коде пишешь
C#
1
2
3
4
private void ellipse1_MouseEnter(object sender, MouseEventArgs e)
        {
            effect.Opacity -= 0.1;
        }
1
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
07.08.2011, 19:53
Правильнее будет это сделать через триггеры:
XML
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
        <Canvas>
            <Ellipse Height="40"
                        HorizontalAlignment="Left"
                        Margin="25,221,0,0"
                        Name="ellipse1"
                        VerticalAlignment="Top"
                        Width="40"
                        StrokeThickness="1"
                  Stroke="Black"
                  Fill="Orange">
                <Ellipse.Effect>
                    <DropShadowEffect Opacity="0.5"
                                            Color="Black"
                                            BlurRadius="15"
                                            ShadowDepth="0"
                                            Direction="0"/>
                </Ellipse.Effect>
                <Ellipse.Triggers>
                    <EventTrigger RoutedEvent="Mouse.MouseEnter">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(DropShadowEffect.Opacity)">
                                    <EasingDoubleKeyFrame KeyTime="00:00:00.2000000"
                                                                 Value="1" />
                                </DoubleAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="Mouse.MouseLeave">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(DropShadowEffect.Opacity)">
                           <EasingDoubleKeyFrame KeyTime="00:00:00.2000000"
                                                 Value="0.5" />
                        </DoubleAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>             
                </Ellipse.Triggers>
            </Ellipse>
        </Canvas>
1
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
08.08.2011, 10:11  [ТС]
Unril, через триггеры конечно красивее получается и меньше заморочек в самом коде, но дело в том что у меня по верх эллипса находится label. + я почему-то не нашёл ни у эллипса ни у лэйбла события Click, поэтому решил поверх всего поставить почти прозрачный button
0
334 / 270 / 18
Регистрация: 19.01.2011
Сообщений: 597
08.08.2011, 10:43
MouseDown а не Click должен быть. Но учитывайте область покрытия Ваших елементов. Я делал внутри контрола
XML
1
2
3
4
5
6
7
8
9
10
11
                <DataTemplate  DataType="{x:Type OSPFTree:OSPFNode}">
                    <Control MouseDown="Control_MouseClick" Tag="{Binding Path=.}">
                        <Control.Template>
                            <ControlTemplate>
                                <Border BorderBrush="Black" BorderThickness="1" Padding="5" CornerRadius="10">
                                  <TextBlock Text="{Binding LoopBackIP}"/>
                                </Border>
                            </ControlTemplate>
                        </Control.Template>
                    </Control>
                </DataTemplate>
Тогда клик отрабатывался по любому месту , без него , например , внутри контура было место, через которое клик "проваливался".
0
13 / 13 / 3
Регистрация: 20.01.2011
Сообщений: 56
08.08.2011, 12:04
Вставляй в любой обработчик:
C#
1
2
3
4
5
6
Storyboard sb = new Storyboard();
            DoubleAnimation da = new DoubleAnimation { To = 0, Duration = TimeSpan.FromSeconds(1) };
            sb.Children.Add(da);
            Storyboard.SetTarget(da, Ellipse1);
            Storyboard.SetTargetProperty(da, new PropertyPath("Ellipse1.Effect.DropShadowEffect.Opacity"));
            sb.Begin();
Если нужно, инверсную анимацию думаю понятно как сделать... - поменять соответствующую цифру на противоположную( свойство "To") и вставить анимацию в новый обработчик...
0
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
08.08.2011, 14:43  [ТС]
Либо я конкретно туплю, но последние два кода в вообще не знаю как поставить, уж помогите новичку.
С DataTemplate выдаёт ошибку:
тип OSPFTree:OSPFNode не найден
(вставлял в App.xaml > <Application.Resources>)
А Storyboard ругается на sb.Begin(); с причиной:
Не удается разрешить все ссылки на свойства в пути свойств "ellipse1.Effect.DropShadowEffect.Opacit y". Проверьте, что соответствующие объекты поддерживают такие свойства.
0
334 / 270 / 18
Регистрация: 19.01.2011
Сообщений: 597
08.08.2011, 14:47
Само собой ругается, ведь это мои классы данных, у Вас они абсолютно другие. Я приводил пример реализации DataTemplate а никак не рабочий код для Вашего приложения (от простого копирования он не заработает). MouseDown есть у любого контрола, не только в моем примере. Добавлять можете в секцию Resources любого элемента, хоть того же к которому Вы описываете DataTemplate.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2011, 14:47
Помогаю со студенческими работами здесь

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

Вопрос по стилям в dataGrid
надо сделать чтобы дата грид отображал названия колонок а не названия полей в БД. Когда делаю с Access, то все достаточно просто: у...

Путь к стилям в ANgular 2
Почему в путь к css не надо ставить первый слэш хотя и html и css в одной папке? Если поставить то не работает. @Component({ ...

Несуществующий путь к стилям
Добрый день, возник вопрос такой, где может находиться файл со стилями, если указанный путь с файрбага не существует? Папки component...

Обращение к символу элемента вектора
Всем привет. Можно ли сослаться на какой либо символ из элемента вектора? Например, есть вектор строк vector &lt;string&gt; vct =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru