Рейтинг@Mail.ru

Анимация изменения цвета фона элемента при наведении мыши в XAML

Published in Полезные советы

Чтобы создать простейший эффект изменения цвета фона элемента, создадим в разделе статических ресурсов:

<Color x:Key="selectedColor" A="255" R="191" G="191" B="204" />
<Color x:Key="originalColor" A="255" R="230" G="230" B="250" />
<SolidColorBrush x:Key="originalColorBrush" Color="{StaticResource originalColor}" />

Теперь для элемента настроим триггеры:

<Border Background="{StaticResource originalColorBrush}">
  <Border.Triggers>
    <EventTrigger RoutedEvent="Border.MouseEnter">
      <BeginStoryboard>
        <Storyboard>
          <ColorAnimation From="{StaticResource originalColor}" To="{StaticResource selectedColor}" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Duration="0:0:0.5"  />
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </Border.Triggers>
  …
</Border>
Читать далее...

WPF: как растянуть содержимое заголовка экспандера на всю ширину

Published in Полезные советы

Чтобы в WPF растянуть содержимое заголовка экспандера Expander.Header на всю ширину, необходимо указать в свойстве Width с помощью расширения разметки следующее:

<Expander>
    <Expander.Header>
        <Grid 
            Width="{Binding RelativeSource
                     ={RelativeSource Mode=FindAncestor, 
                     AncestorType={x:Type Expander}}, 
                     Path=ActualWidth}">
…
        </Grid>
    </Expander.Header>
</Expander>

При таком подходе, если вы имеете множественные элементы типа Expander на странице или в окне, возможны проблемы производительности при отрисовке пользовательского интерфейса (GUI). В этом случае можно поступить так: переопределить стиль экспандера и задать свойству HorizontalAlignment элемента ContentPresenter значение Stretch вместо Left.

Читать далее...
Subscribe to this RSS feed