Прозрачность элементов wpf на Палитре

Автор Тема: Прозрачность элементов wpf на Палитре  (Прочитано 8732 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Добрый день всем,

Подскажите как задать прозрачность элемента на палитре.
На палитру добавляю listBox с картинками. Задаю прозрачный фон. А получается черный фон.
Извините, вам запрещён просмотр содержимого спойлеров.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
В упор в коде не вижу где вы задаете прозрачный фон))

А - нашел!
Попробуйте задать прозрачный фон для DataTemplate элементов. Вы же их "переопределяете", значит и настроить должны сами

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Background у ListBox:
Код - XML [Выбрать]
  1. <ListBox ... Background="Transparent">

Так? Убрал Background у listBox'а, добавил к StackPanel в DataTemplate:
Код - XML [Выбрать]
  1. <DataTemplate x:Key="ImageCell">
  2.             <StackPanel Orientation="Vertical" Background="Transparent">
Получился белый фон.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Или добавьте в DataTemplate свойство BasedOn={ListBoxItem} (не помню как правильно пишется  ::) )

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
BasedOn ведь относится к стилям https://msdn.microsoft.com/ru-ru/library/system.windows.style.basedon%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
У меня тут стили пока не используются вроде.
не пойму что-то.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
BasedOn ведь относится к стилям https://msdn.microsoft.com/ru-ru/library/system.windows.style.basedon%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
У меня тут стили пока не используются вроде.
не пойму что-то.
Если вы используете BasedOn=ListBoxItem, то у вас стиль будет повторять стиль ListBoxItem, кроме переопределенных свойств
Ну и конечно нужно попробовать прозрачность установить и для самого ListBox и для DataTemplate

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Хотелось бы получить результат похожий на штатные палитры автокада.
Может не прозрачность задавать, а подобрать цвет под текущую тему автокада?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Ну и конечно нужно попробовать прозрачность установить и для самого ListBox и для DataTemplate
Попробовали?

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Да. Черное получается.
Пока думаю задавать цвет соответствующий теме автокада. Для темной #5c5c5c, для светлой белый.
« Последнее редактирование: 19-04-2016, 20:38:42 от vildar82 »

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Да. Черное получается.
Пока думаю задавать цвет соответствующий теме автокада задавать. Для темной #5c5c5c, для светлой белый.
Плохое решение. Не универсальное. Нужно продолжать искать причину!
Например, попробовать другой элемент для эксперимента

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Я когда с этим столкнулся (фон WPF окошка) назначил просто белый цвет фону, вне зависимости от темы. Пока времени не было с этим разбираться. А как Вы определяете текущую тему?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
vildar82, а можете сделать пробный проект для тестов?

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Тема определяется из переменной COLORTHEME
Код - C# [Выбрать]
  1. Application.GetSystemVariable("COLORTHEME")
Тестовый проект щас подготовлю.

Прикрепил проект.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Плохое решение. Не универсальное. Нужно продолжать искать причину!
Беру свои слова обратно)
Потыкался с проектом, погуглил немного и пришел к простому выводу - контейнер в палитре просто не имеет цвета, поэтому всегда черный.
Значит ваш вариант - задавать фон в зависимости от темы единственный подходящий.
Что точно могу подсказать:
Для светлой темы кисть называется WhiteSmoke (#FFF5F5F5)
Для темной системной кисти нет. Цвет #FF5C5C5C