Прозрачность WPF и переключение стилей между прозрачным и непрозрачным - PullRequest
0 голосов
/ 09 февраля 2011

2 вопроса:

  1. Во-первых:
    Можно ли переключить прозрачность в окне WPF? Любые указатели очень ценятся!
  2. Во-вторых:
    Большинство элементов управления в моем окне наследуют их Transparancy от родительского окна, однако у меня есть элемент управления Datagrid со своим собственным стилем. Стиль находится во внешнем файле, на который я ссылаюсь (Style = "{DynamicResource MyDGStyle}") ..... in Код XAML позади я могу переключить стили? (В идеале я бы достиг этого, используя Style Trigger, но не думаю, что смогу).

Большое спасибо

Джо

Редактировать (не могу ответить)

Спасибо, Алекс, NVM

Что касается прозрачности переключения, если я могу установить свойство «Фон» окна во время выполнения с цвета на «Прозрачный» в это время, это нормально.

Что касается переключения стилей, просто расширение вашего кода alex, возможно, я могу сделать что-то вроде

void OnButtonPress()
{
     var transparentStyle = Themes.CurrentTheme.MyDGNonTransparentStyle;
     var nonTransparentStyle = Themes.CurrentTheme.MyDGNonTransparentStyle;

     if (isTransparent) // Change to Non-Transparent
         this.MyGrid.Style = (Style)this.FindResource(nonTransparentStyle); 
     else // Change to Transparent
         this.MyGrid.Style = (Style)this.FindResource(nonTransparentStyle); 
}

Спасибо

Джо

3-е редактирование

Спасибо, ребята,

Извините, что сбил вас с толку - мой второй вопрос был, так как моя сетка данных имеет свой собственный стиль (и не наследует от окна). Мне нужно будет установить его стиль в зависимости от текущего состояния (прозрачный / непрозрачный) - так Мне нужно изменить стиль сетки данных во время выполнения - теперь, так как это можно сделать с помощью окна, могу ли я предположить, что это можно сделать с помощью сетки данных?

Спасибо

Джо

1 Ответ

2 голосов
/ 10 февраля 2011

Можно ли включить прозрачность в окне WPF?

Да, это:

<Window WindowStyle="None" 
        AllowsTransparency="True"
        Background="#88aa3366">
</Window/>

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

в коде xaml я могу переключать стили?

Вопрос в том,немного неясно, может быть, это помогает:

var key = Themes.CurrentTheme.MyDGStyle;
this.MyGrid.Style = (Style)this.FindResource(key);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...