![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| CasperSC |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Здравствуйте. Вот пытаюсь получить цвет элемента Border.
Вообще суть такая: есть окно с сообщением, верхняя его часть должна плавно переходить в цвет основной части окна. То есть в метод SetBorderColor нужно в качестве параметров передавать выбранный цвет (colorGradientStopTop) и цвет основной части окна, конкретно Border'a растянутого на всё окно (colorGradientStopBottom) Что-то типа этого: ![]() Это сообщение отредактировал(а) CasperSC - 5.8.2010, 23:56 |
||||
|
|||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
Раз у тебя одноцветная заливка бордера, то это делается так:
|
|||
|
||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Хм, сейчас попробовал получилось. Но я сам делал точно также и у меня вылетело исключение, что не получается преобразовать в Brush в SolidColorBrush, сейчас работает. Может быть я тогда допустил ошибку, не знаю.
А нет, вылетело исключение: System.InvalidCastException не обработано пользовательским кодом Message=Не удалось привести тип объекта "System.Windows.Media.LinearGradientBrush" к типу "System.Windows.Media.SolidColorBrush". На строчке:
Это сообщение отредактировал(а) CasperSC - 6.8.2010, 00:04 |
|||
|
||||
| Kefir |
|
||||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
Если у тебя у бордера поставлена заливка сплошным цветом, то тогда Background будет типа SolidColorBrush (я так понял из первого поста). Если же ты поменял заливку со сплошного цвета на градиент, тогда заливка будет типа GradientBrush (если точнее, то или LinearGradientBrush или RadialGradientBrush, унаследованные от GradientBrush - так что приводить лучше к GradientBrush):
GradientStops содержит все остановки градиента, среди которых просто по индексу выбирай свой цвет (у меня в примере я получаю цвет первой остановки градиента). Если же у тебя могут быть оба варианта (одноцветная заливка или же градиент), то можно просто сделать проверку типа:
Опять же - замени индекс [0] на нужный тебе. |
||||
|
|||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Спасибо за помощь, попробовал сделать приведение к градиент браш, дык смотрю у меня там 4 градиент стопа, я аж удивился, думаю
откуда, ведь заливаю border сплошным цветом, оказалось я перепутал название, вот так работает всё нормально:
Было: this.btnColorBorder.Background; Сейчас: this.windowStiker.borderBackground.Background; Мде, вот это невнимательно я написал, что аж весь вчерашний день недоумевал, почему не работает, когда должно работать. Это сообщение отредактировал(а) CasperSC - 6.8.2010, 20:11 |
|||
|
||||
| exBlender |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 2.10.2009 Репутация: 9 Всего: 9 |
Если о сути, то она вообще такая: никакого мусора с описанием цветов или размеров в C# коде быть не должно.
В xaml создаются различные стили Border'ов, а команда из кода только меняет один стиль на другой. --------------------
HTML и CSS забыв как страшный сон, хвалу я заммэлу пою и фирме Майкрософт. |
|||
|
||||
| CasperSC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Тогда получается, мне нужно очень много стилей сделать. Так как я зделал возможность стиль сообщения изменить как угодно пользователю, на любые цвета и прозрачность. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |