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
Значение от 0 до 1.0, которое объявляет коэффициент непрозрачности, с 1,0 значением полной непрозрачности и 0, что означает прозрачный. Значение по умолчанию — 1,0.
Примеры
В этом примере для целевого объекта Opacityиспользуется раскадровка и DoubleAnimation. Это анимирует 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 на холсте , также 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" в исходном шаблоне элемента управления, так как этот прямоугольник не отображается в состояниях, не ориентированных по умолчанию. Но визуальные состояния определяют состояние "Сосредоточено" нулевой длительности, которое задает прозрачность 1, когда элемент управления с помощью этих шаблонов и состояний обнаружил, что он ориентирован на клавиатуру.
Непрозрачность и тестирование попаданий
Значение Opacity 0 не исключает объект из тестирования попаданий. Это поведение может быть полезно для создания наложений в стиле изображения, которые рисуются поверх остальной части пользовательского интерфейса. Например, можно использовать холст с двумя дочерними элементами: прямоугольник , имеющий высоту, ширину и непрозрачность 0, а также корень макета остальной части пользовательского интерфейса, который должен нарисовать под ним. По умолчанию дочерние элементы рисования Canvas поверх друг друга в той же абсолютной системе координат. Убедитесь, что значение RectangleZIndex выше, чем в других элементах ZIndex (или объявите Rectangle после другого элемента в порядке элемента XAML, чтобы получить тот же результат). Проводите логику тестирования попаданий (объединяет Microsoft. Пользовательского интерфейса. Xaml.Input.PointerRoutedEventArgs.GetCurrentPoint и VisualTreeHelper.FindElementsInHostCoordinates для события PointerPressed.Rectangle
Кроме того, чтобы исключить объект из тестирования попаданий, следует задать для IsHitTestVisible значение false, а не использовать Opacity.