Поделиться через


UIElement.Opacity Свойство

Определение

Возвращает или задает степень непрозрачности объекта.

public:
 property double Opacity { double get(); void set(double value); };
double Opacity();

void Opacity(double value);
public double Opacity { get; set; }
var double = uIElement.opacity;
uIElement.opacity = double;
Public Property Opacity As Double
<uiElement Opacity="double" .../>

Значение свойства

Double

double

Значение от 0 до 1,0, которое объявляет коэффициент непрозрачности, при этом 1,0 означает полную непрозрачность, а 0 — прозрачную. Значение по умолчанию — 1,0.

Примеры

В этом примере используются Раскадровка и DoubleAnimation для назначения Opacity. Это анимирует , Opacity чтобы создать декоративную анимацию исчезания приложения в течение одной секунды.

  <UserControl x:Class="animation_ovw_intro.Page"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  Width="400" Height="300">

  <StackPanel>
    <StackPanel.Resources>
      <!-- Animates the rectangle's opacity. -->
      <Storyboard x:Name="myStoryboard">
        <DoubleAnimation
          Storyboard.TargetName="MyAnimatedRectangle"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:1" 
          AutoReverse="True" 
          RepeatBehavior="Forever"/>
       </Storyboard>
    </StackPanel.Resources>
    <TextBlock Margin="10">Click on the rectangle to start the animation.</TextBlock>

    <Rectangle PointerPressed="Item_Clicked"
      x:Name="MyAnimatedRectangle"
      Width="100" Height="100" Fill="Blue" />

  </StackPanel>
</UserControl>

Комментарии

Если Opacity задано для вложенных объектов, эффективная непрозрачность для отрисовки является результатом всех применимых факторов непрозрачности. Например, если объект содержится Opacity=0.5 в Canvas , который также Opacity=0.5является , эффективным Opacity значением для отрисовки является 0.25. Opacity Значения больше 1,0 при использовании значения обрабатываются как 1,0, хотя получение значения свойства по-прежнему дает исходное значение больше одного. Opacity Значения, заданные как меньше 0, при использовании значения обрабатываются как 0. В логике факторинга установка Opacity значения 2, чтобы отменить эффекты, которые содержатся в объекте с 0,5 Opacity , не работает; значение 2 обрабатывается как 1,0 еще до вычисления факторинга вложенных объектов.

Opacity — это свойство, которое иногда анимируется в раскадровках визуального состояния с нулевой длительностью. Например, прямоугольник фокуса для визуальных состояний FocusStates задается с Opacity="0" помощью в исходном шаблоне элемента управления, так как вы не хотите, чтобы этот прямоугольник отображались в состояниях без фокусировки по умолчанию. Но визуальные состояния определяют состояние "Отсортированные" нулевой длительности, которое устанавливает значение Opacity равным 1, если элемент управления, использующий эти шаблоны и состояния, обнаружил, что он ориентирован на клавиатуру.

Непрозрачность и проверка попадания

Значение Opacity 0 не исключает объект из проверки попадания. Такое поведение может быть полезно для создания наложений в стиле imagemap, которые рисуются поверх остальной части пользовательского интерфейса. Например, можно использовать холст с двумя дочерними элементами: Прямоугольник с значениями Height, Width и Opacity 0, а также корень макета остальной части пользовательского интерфейса, который должен рисовать под ним. По умолчанию дочерние элементы рисования Canvas друг над другом в одной абсолютной системе координат. Убедитесь, что значение ZIndex объекта выше, чем у другого Rectangle элемента ZIndex (или объявите Rectangle после другого элемента в порядке элементов XAML, чтобы получить тот же результат). Подключение логики проверки попадания (объединяет Microsoft.UI.Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint и VisualTreeHelper.FindElementsInHostCoordinates с событием PointerPressed для Rectangle.

Кроме того, чтобы исключить объект из проверки попадания, следует задать для Параметра IsHitTestVisible значение false, а не использовать Opacity.

Применяется к

См. также раздел