Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
BetterShmatter
0 / 0 / 0
Регистрация: 05.01.2014
Сообщений: 7
#1

Изменения свойств элемента шаблона

16.08.2018, 10:52. Просмотров 92. Ответов 3

Добрый день, есть стиль для Button(Button->Grid->Ellipse):
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
  <Style.Setters>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Grid>
                                <Ellipse StrokeThickness="5">
                                    <Ellipse.Stroke>
                                        <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                            <GradientStop Color="#FFB5FDE9" Offset="0.75"/>
                                            <GradientStop Color="#FFADFFF8" Offset="0.25"/>
                                            <GradientStop Color="#FFBFFDEC" Offset="1"/>
                                            <GradientStop Color="#FF93EFF3"/>
                                            <GradientStop Color="#FF73DCD3" Offset="0.486"/>
                                            <GradientStop Color="#FF90E5DC" Offset="0.562"/>
                                            <GradientStop Color="#FF88E4E0" Offset="0.43"/>
                                        </LinearGradientBrush>
                                    </Ellipse.Stroke>
                                    <Ellipse.Fill>
                                        <ImageBrush ImageSource="{Binding ElementName=PathToFileLabel, Path=Content}" Stretch="Fill"></ImageBrush>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" />
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style.Setters>
Теперь мне нужен триггер, который будет изменять Stroke, при навидении мыши, пытался сделать таким образом:
XML
1
2
3
4
<Style.Triggers>
                <Trigger Property="Control.IsMouseOver" Value="True">
                    <Setter Property="Ellipse.StrokeThickness" Value="2"></Setter>
                </Trigger>
Но не получилось, подскажите, пожалуйста, как мне обратиться к свойствам Ellipse.

Добавлено через 37 минут
Еще была вот такая попытка:
XML
1
<Ellipse StrokeThickness="{TemplateBinding FontSize}">
XML
1
2
3
4
<Style.Triggers>
                <Trigger Property="Control.IsMouseOver" Value="True">
                    <Setter Property="FontSize" Value="2"/>
                </Trigger>
Но этот вариант не работает на элементы, которые созданы при запуске программы, срабатывает только на кнопку, созданную на верстаке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2018, 10:52
Ответы с готовыми решениями:

Переопределение некоторых свойств шаблона TabItem
Здравствуйте. Написал свой шаблон для заголовков вкладок TabControl-a: ...

Изменение свойств родительского элемента
в проге динамически создается сетка с разными элементами в stackpanel есть...

Изменение свойств программно созданного элемента Silverlight
Есть функция которая в цикле создает объект типа Rectangle следующим образом: ...

Связь свойств элемента Grid и элементов, находящихся в нем
Добрый день, уважаемые форумчане. Прошу помочь в решении небольшой проблемы...

Упрощение изменения свойств
Всем доброго времени суток. Столкнулся с проблемой. Собственно, существует...

3
novikov.ea
955 / 743 / 265
Регистрация: 10.06.2011
Сообщений: 1,411
16.08.2018, 10:56 #2
Цитата Сообщение от BetterShmatter Посмотреть сообщение
который будет изменять Stroke, при навидении мыши
Пишите, что нужно изменять Stroke, а изменяете другие свойства. Может быть вам нужно изменять свойство Stroke, раз пишите о Stroke?
0
BetterShmatter
0 / 0 / 0
Регистрация: 05.01.2014
Сообщений: 7
16.08.2018, 11:05  [ТС] #3
XML
1
2
3
4
5
6
7
8
9
10
11
<Ellipse.Stroke>
       <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
              <GradientStop Color="#FFB5FDE9" Offset="0.75"/>
              <GradientStop Color="#FFADFFF8" Offset="0.25"/>
              <GradientStop Color="#FFBFFDEC" Offset="1"/>
              <GradientStop Color="#FF93EFF3"/>
              <GradientStop Color="#FF73DCD3" Offset="0.486"/>
              <GradientStop Color="#FF90E5DC" Offset="0.562"/>
              <GradientStop Color="#FF88E4E0" Offset="0.43"/>
        </LinearGradientBrush>
</Ellipse.Stroke>
Хотел бы менять цвета при навидении мыши. Просто не знаю как это сделать, поэтому взял элемент проще, и тестирую варианты на нем.
0
BetterShmatter
0 / 0 / 0
Регистрация: 05.01.2014
Сообщений: 7
21.08.2018, 15:19  [ТС] #4
Сделал вот так, может быть кому то будет полезно, не шарю за канонность данного кода если что.
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
42
43
44
45
46
47
48
49
50
51
        <Style TargetType="Button">
            <Style.Resources>
                <LinearGradientBrush x:Key="gs11" EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                    <GradientStop Color="#FFB5FDE9" Offset="0.75"/>
                    <GradientStop Color="#FFADFFF8" Offset="0.25"/>
                    <GradientStop Color="#FFBFFDEC" Offset="1"/>
                    <GradientStop Color="#FF93EFF3"/>
                    <GradientStop Color="#FF73DCD3" Offset="0.486"/>
                    <GradientStop Color="#FF90E5DC" Offset="0.562"/>
                    <GradientStop Color="#FF88E4E0" Offset="0.43"/>
                </LinearGradientBrush>
                <LinearGradientBrush x:Key="gs22" EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop x:Name="gs23" Color="#FFF77D44" Offset="1"/>
                    <GradientStop x:Name="gs24" Color="#FFFBB066" Offset="0.75"/>
                    <GradientStop x:Name="gs25" Color="#FFE48153" Offset="0.5"/>
                    <GradientStop x:Name="gs26" Color="#FFF9FF84" Offset="0.6"/>
                    <GradientStop x:Name="gs27" Color="#FFE4E088" Offset="0.4"/>
                    <GradientStop x:Name="gs28" Color="#FFFBB066" Offset="0.25"/>
                    <GradientStop x:Name="gs29" Color="#FFF77D44"/>
                </LinearGradientBrush>
                
            </Style.Resources>
            <Style.Setters>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            
                            <Grid x:Name="BttnGrid">
                                <Ellipse x:Name="Path1" Stroke="{StaticResource ResourceKey=gs11}" StrokeThickness="5">
                                    <Ellipse.Fill>
                                        <ImageBrush ImageSource="{Binding ElementName=PathToFileLabel, Path=Content}" Stretch="Fill"></ImageBrush>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" />
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Control.IsMouseOver" Value="True">
                                    <Setter TargetName="Path1" Property="Stroke" Value="{StaticResource gs22}"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
 
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style.Setters>
            <Style.Triggers>
                <Trigger Property="Control.IsMouseOver" Value="True">
                    
                </Trigger>
            </Style.Triggers>
        </Style>
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2018, 15:19

Создание собственного элемента или шаблона для отображения информации
Передо мной стоит задача: организовать выведение списка объектов в...

Изменения дизайна элемента Button
Как изменить дизайн и анимацию элемента Button? Как фоновый рисунок поменять...

Создать событие изменения html элемента в webbrowser
Создать событие изменения html элемента в webbrowser нашел такой код но не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru