59 / 60 / 37
Регистрация: 24.07.2015
Сообщений: 224
1

Стиль тоггл кнопка с текстом и картинкой

18.07.2016, 12:00. Показов 1573. Ответов 2

День добрый.

Имеется в наличии следующий стиль:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<Style x:Key="Style_MainButtons" TargetType="ToggleButton">
                <Setter Property="Width" Value="110" />
                <Setter Property="Height" Value="110" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ToggleButton}">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition />
                                </Grid.RowDefinitions>
                                <TextBlock x:Name="Text" HorizontalAlignment="Center" />
                                <Image x:Name="Image" Grid.Row="1" />
                            </Grid>
                            <ControlTemplate.Triggers>                              
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
Так как кнопок несколько и каждая имеет свой текст и картинку, то хотелось бы присваивать содержание текста и адрес картинки в следующем коде:


XML
1
2
3
4
5
6
7
8
 <ToggleButton x:Name="btnHorizontal" 
                              Style="{StaticResource Style_MainButtons}"
                              Grid.Column="0" 
                              Grid.Row="1" 
                              Checked ="SetVersion" 
                              Unchecked ="SetVersion" 
                              IsChecked="True" >
                </ToggleButton>
Как сие можно исполнить?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2016, 12:00
Ответы с готовыми решениями:

Нужна кнопка в виде шарика с текстом, и анимированный шарик с текстом.
где найти готовый? дополню: шарик с текстом у меня есть, но это просто плоский текст на сферическом...

Кнопка с картинкой
Подскажите как сделать шаблон кнопки с картинкой, ничего рабочего не нашел Вот если что мой...

Можно ли подключать стиль к кнопке и там же указывать ссылку на ресурс с картинкой
Форумчане, не подскажете как быть создал стиль для кнопки, вставляю в него иконку ------весь...

WPF Существует очень красивый стиль кнопки(кнопка с закругленными углам). Но по умолчанию со всем не то
Когда в WPF приложении на VS2012 создаешь кнопку, то получается в прямыми углами кнопка. А...

2
102 / 89 / 19
Регистрация: 15.04.2015
Сообщений: 353
20.07.2016, 13:40 2
Можно использовать AttachedBehavior. Стиль будет брать значения с AttachedBehavior, сам AttachedBehavior получает значения уже при создании кнопки.
0
868 / 548 / 290
Регистрация: 21.11.2012
Сообщений: 1,541
20.07.2016, 17:00 3
Лучший ответ Сообщение было отмечено Arik100 как решение

Решение

Arik100,

1. добавляешь в проект новый класс и называешь его AttachedProperties
2. далее в этом классе создаешь свойство Text:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class AttachedProperties
    {
        #region Text
        public static DependencyProperty TextProperty =
         DependencyProperty.RegisterAttached("Text", typeof(string), typeof(AttachedProperties), new PropertyMetadata(null));
 
        public static void SetText(DependencyObject obj, string value)
        {
            obj.SetValue(TextProperty, value);
        }
        public static string GetText(DependencyObject obj)
        {
            return (string)obj.GetValue(TextProperty);
        }
        #endregion
    }
3. далее в словаре, где описан стиль кнопки нужно добавить ссылку на этот класс:

XML
1
xmlns:ap="clr-namespace:MyProjekt.MyFolder"
4. создаешь привязку к полю текст, текстблока в стиле кнопки:

XML
1
2
3
4
<Style TargetType="ToggleButton" x:Key="Style_MainButtons">
...
<TextBlock x:Name="Text" Text="{Binding Path=(ap:AttachedProperties.Text), RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ToggleButton}}"
</Style>
5. после этого можно использовать текст для кнопки след. образом:

XML
1
2
3
4
5
6
7
<ToggleButton x:Name="btnHorizontal" 
                              Style="{DynamicResource Style_MainButtons}"
                              Grid.Column="1" 
                              Grid.Row="1" 
                              ap:AttachedProperties.Text="kakashka"
                              IsChecked="True" >
        </ToggleButton>
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2016, 17:00

Кнопка BS_OWNERDRAW или кнопка со своей картинкой
Есть код, с помощью которого можно менять картинку при нажатии, при фокусе { // ownerdraw...

Большие кнопки с картинкой и текстом
Всем добрый день, Можете подсказать как можно создать большую кнопку с текстом и картинкой. На...

Как сделать с текстом и картинкой
Здравствуйте, у меня не очень получается сделать, чтоб была картинка и 2 текста. Один текст должен...

Idhttp post запрос с текстом и картинкой
Всем привет :D Помогите пожалуйста сделать что то вроде комбинированного запроса, то есть с текстом...


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

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

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