Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 35
1

Кнопка без видимых границ

10.12.2014, 12:36. Показов 2381. Ответов 3
Метки нет (Все метки)

Если задать значение BorderThickness="0" у кнопки, то в приложении, запущенном на Windows 8 у кнопки не будет видно границ, только содержимое кнопки (например рисунок и текст).

Как сделать тоже самое для Windows 7 (XP) ?

Как вообще заставить выглядеть приложение одинаково во всех видах windows? Это вообще возможно сделать, не создавая собственные контролы полностью с нуля?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2014, 12:36
Ответы с готовыми решениями:

Windows 7 тормозит без видимых причин и без загрузки процессора
Добрый день! Уже неделю бьюсь над проблемой: конфигурация моего компа не самая лучшая, но Семерку...

Включается компьютер без видимых причин
стал включаться компьютер без видимых причин. то ночью, то утром, то днем по три раза! обратился к...

Просадки ФПС без видимых причин
Здравствуйте. Решил протестировать свою система в ГТА 5 пиратке в разрешении 1680х1050. Всё на...

Отключить элемент без видимых признаков
Доброго вечера, как мне отключить элемент, но так, что бы по его его "виду" этого не показать,...

3
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
10.12.2014, 13:43 2
google.com -> Style Button wpf -> setter BorderTrickness -> написание своего стиля -> profit
0
51 / 51 / 18
Регистрация: 26.07.2012
Сообщений: 188
11.12.2014, 10:39 3
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Вот линк на дефолтный шаблон кнопки.

http://msdn.microsoft.com/en-u... 90%29.aspx

XML
1
2
3
BorderThickness="1"
          Background="{StaticResource NormalBrush}"
          BorderBrush="{StaticResource NormalBorderBrush}"

Видно, что BorderThickness="1". Т.е. как свойство кнопки не меняй - визуально ничего не поменяется. Аналогично цвет бэкграунда кнопки и цвет бордера заданы статически. Если Нужно сделать их вариативными, то нужно
видоизменить шаблон.

XML
1
2
3
BorderThickness="{TemplateBinding BorderThickness}"
          Background="{TemplateBinding Background}"
          BorderBrush="{TemplateBinding BorderBrush}"
Полный стиль со всеми нужными кистями. Вынесете в отдельный словарь или добавите в ресурсы окна (но это приведет к загромождению кода окна).

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
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
<Style x:Key="ButtonFocusVisual">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Border>
                            <Rectangle 
            Margin="2"
            StrokeThickness="1"
            Stroke="#60000000"
            StrokeDashArray="1 2"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
 
        <LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#FFF" Offset="0.0"/>
                    <GradientStop Color="#AAA" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>
 
        <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#BBB" Offset="0.0"/>
                    <GradientStop Color="#EEE" Offset="0.1"/>
                    <GradientStop Color="#EEE" Offset="0.9"/>
                    <GradientStop Color="#FFF" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>
 
        <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
 
        <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
 
       
 
        <!-- Border Brushes -->
 
 
        <LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#777" Offset="0.0"/>
                    <GradientStop Color="#000" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>
 
        <LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#444" Offset="0.0"/>
                    <GradientStop Color="#888" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>
 
        <SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
 
        <Style TargetType="Button">
            <Setter Property="SnapsToDevicePixels" Value="true"/>
            <Setter Property="OverridesDefaultStyle" Value="true"/>
            <Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
            <Setter Property="MinHeight" Value="23"/>
            <Setter Property="MinWidth" Value="75"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border 
                              x:Name="Border"  
                              CornerRadius="2" 
                              BorderThickness="{TemplateBinding BorderThickness}"
                              Background="{TemplateBinding Background}"
                              BorderBrush="{TemplateBinding BorderBrush}">
                                                <ContentPresenter 
                                Margin="2"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                RecognizesAccessKey="True"/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsKeyboardFocused" Value="true">
                                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DefaultedBorderBrush}" />
                            </Trigger>
                            <Trigger Property="IsDefaulted" Value="true">
                                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DefaultedBorderBrush}" />
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter TargetName="Border" Property="Background" Value="{StaticResource DarkBrush}" />
                            </Trigger>
                            <Trigger Property="IsPressed" Value="true">
                                <Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
                                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" />
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
                                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
                                <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
1
1 / 1 / 0
Регистрация: 16.02.2013
Сообщений: 35
12.12.2014, 11:14  [ТС] 4
Спасибо огромное!, сейчас буду изучать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2014, 11:14

Скроллинг ScrollBox без видимых scrollbar
Гуглил раз 5 на эту тему, ничего дельного не нашел. Так вот: можно ли прокручивать скроллбокс, если...

Сайт пессимизирован без видимых причин
У меня проблема. Сайт в личке. Доска объявлений. На Россию и Украину разные домены. С Яшей...

IIS останавливается без видимых причин
IIS останавливается без видимых причин. Перегрузка IIS не помогает. При попытке стартануть сайт...

Зависает ноутбук, без видимых причин
Здравствуйте. Есть ноутбук: ------------------ System Information ------------------ Time of...


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

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

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