SplitOpenThemeAnimation Класс

Определение

Представляет предварительно настроенную анимацию, которая показывает целевой пользовательский интерфейс с помощью разбиения анимации.

public ref class SplitOpenThemeAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SplitOpenThemeAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SplitOpenThemeAnimation : Timeline
Public NotInheritable Class SplitOpenThemeAnimation
Inherits Timeline
<SplitOpenThemeAnimation .../>
Наследование
Object Platform::Object IInspectable DependencyObject Timeline SplitOpenThemeAnimation
Атрибуты

Примеры

Ниже приведен пример пользовательского элемента управления, использующего разбиение открытых и разделенных анимаций темы закрытия.

// Themes/Generic.xaml
<!-- Example template of a custom control that uses split open 
     and split close theme animations. -->
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:BlankApp1">

    <Style TargetType="local:SplitOpenControl" >
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:SplitOpenControl">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="OpenStates">
                                <VisualState x:Name="Open">
                                    <Storyboard>
                                        <SplitOpenThemeAnimation 
                                            OpenedTargetName="contentBorder" 
                                            ContentTargetName="content" 
                                            ClosedTargetName="targetRect"
                                            ContentTranslationDirection="Left"
                                            ContentTranslationOffset="200"  
                                            OffsetFromCenter="0"
                                            OpenedLength="200"
                                            ClosedLength="0"/>
                                        <DoubleAnimation 
                                            Storyboard.TargetName="targetRect" 
                                            Storyboard.TargetProperty="Opacity" 
                                            To="0" 
                                            Duration="0"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Closed">
                                    <Storyboard>
                                        <SplitCloseThemeAnimation
                                            OpenedTargetName="contentBorder" 
                                            ContentTargetName="content" 
                                            ClosedTargetName="targetRect"
                                            ContentTranslationDirection="Left"
                                            ContentTranslationOffset="-200"  
                                            OffsetFromCenter="0"
                                            OpenedLength="200"
                                            ClosedLength="0"/>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>

                        <Rectangle x:Name="targetRect" Width="100" Height="100" Fill="Blue"/>

                        <Popup IsOpen="False" Height="50" Width="200" x:Name="contentPopup">
                            <Border x:Name="contentBorder" BorderBrush="Orange" BorderThickness="3">
                                <TextBlock x:Name="content" Text="Hello, World!" FontSize="20"/>
                            </Border>
                        </Popup>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>
public sealed class SplitOpenControl : Control
{
    private Popup _contentPopup;
    public SplitOpenControl()
    {
        this.DefaultStyleKey = typeof(SplitOpenControl);
    }

    protected override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        _contentPopup = GetTemplateChild("contentPopup") as Popup;
    }

    protected override void OnPointerPressed(PointerRoutedEventArgs e)
    {
        this.CapturePointer(e.Pointer);
        _contentPopup.IsOpen = true;
        VisualStateManager.GoToState(this, "Open", true);            
    }

    protected override void OnPointerReleased(PointerRoutedEventArgs e)
    {            
        VisualStateManager.GoToState(this, "Closed", true);
        this.ReleasePointerCapture(e.Pointer);
    }
}
// SplitOpenControl.h:
struct SplitOpenControl : SplitOpenControlT<SplitOpenControl>
{
    SplitOpenControl(){ DefaultStyleKey(winrt::box_value(L"MyApp.SplitOpenControl")); }

    void OnApplyTemplate();
    void OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e);
    void OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e);

private:
    Windows::UI::Xaml::Controls::Primitives::Popup m_contentPopup;
};

// SplitOpenControl.cpp:
void SplitOpenControl::OnApplyTemplate()
{
    m_contentPopup = GetTemplateChild(L"contentPopup").as<Windows::UI::Xaml::Controls::Primitives::Popup>();
}

void SplitOpenControl::OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
{
    CapturePointer(e.Pointer());
    m_contentPopup.IsOpen(true);
    Windows::UI::Xaml::VisualStateManager::GoToState(*this, L"Open", true);
}

void SplitOpenControl::OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
{
    Windows::UI::Xaml::VisualStateManager::GoToState(*this, L"Closed", true);
    ReleasePointerCapture(e.Pointer());
}
// SplitOpenControl.h:
public ref class SplitOpenControl sealed : public Windows::UI::Xaml::Controls::Control
{
public:
    SplitOpenControl();
protected:
    virtual void OnApplyTemplate() override;
    virtual void OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e) override;
    virtual void OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e) override;
private:
    Windows::UI::Xaml::Controls::Primitives::Popup ^m_contentPopup;
};

// SplitOpenControl.cpp:
SplitOpenControl::SplitOpenControl()
{
    DefaultStyleKey = "MyApp.SplitOpenControl";
}

void SplitOpenControl::OnApplyTemplate()
{
    m_contentPopup = static_cast<Popup^>(GetTemplateChild("contentPopup"));
}

void SplitOpenControl::OnPointerPressed(PointerRoutedEventArgs^ e)
{
    CapturePointer(e->Pointer);
    m_contentPopup->IsOpen = true;
    VisualStateManager::GoToState(this, "Open", true);
}

void SplitOpenControl::OnPointerReleased(PointerRoutedEventArgs^ e)
{
    VisualStateManager::GoToState(this, "Closed", true);
    ReleasePointerCapture(e->Pointer);
}

Комментарии

Обратите внимание, что установка свойства Duration не влияет на этот объект, так как длительность предварительно настроена.

Конструкторы

Имя Описание
SplitOpenThemeAnimation()

Инициализирует новый экземпляр класса SplitOpenThemeAnimation .

Свойства

Имя Описание
AutoReverse

Возвращает или задает значение, указывающее, воспроизводится ли временная шкала в обратном порядке после завершения итерации вперед.

(Унаследовано от Timeline)
BeginTime

Возвращает или задает время начала этой временной шкалы .

(Унаследовано от Timeline)
ClosedLength

Возвращает или задает начальный размер целевого элемента в направлении анимации.

ClosedLengthProperty

Определяет свойство зависимостей ClosedLength .

ClosedTarget

Возвращает или задает элемент пользовательского интерфейса, указывающий начальный размер клипа.

ClosedTargetName

Возвращает или задает имя элемента пользовательского интерфейса, указывающего начальный размер клипа.

ClosedTargetNameProperty

Определяет свойство зависимостей ClosedTargetName .

ClosedTargetProperty

Определяет свойство зависимостей ClosedTarget .

ContentTarget

Возвращает или задает элемент пользовательского интерфейса, который будет преобразован. Обычно это дочерний элемент или часть элемента, определяемого параметром OpenedTargetName или OpenedTarget.

ContentTargetName

Возвращает или задает имя элемента пользовательского интерфейса, который будет преобразован. Обычно это дочерний элемент или часть элемента, определяемого параметром OpenedTargetName.

ContentTargetNameProperty

Определяет свойство зависимости ContentTargetName .

ContentTargetProperty

Определяет свойство зависимостей ContentTarget .

ContentTranslationDirection

Возвращает или задает значение, определяющее направление, которое должно преобразовываться при выполнении анимации.

ContentTranslationDirectionProperty

Определяет свойство зависимостей ContentTranslationDirection .

ContentTranslationOffset

Возвращает или задает пиксели, которые будут преобразовывать при выполнении анимации.

ContentTranslationOffsetProperty

Определяет свойство зависимостей ContentTranslationOffset .

Dispatcher

Всегда возвращается null в приложении пакета SDK для приложений windows. Вместо этого используйте DispatcherQueue .

(Унаследовано от DependencyObject)
DispatcherQueue

Возвращает, DispatcherQueue с которым связан этот объект. Представляет DispatcherQueue собой объект, который может получить доступ к DependencyObject потоку пользовательского интерфейса, даже если код инициируется потоком, отличным от пользовательского интерфейса.

(Унаследовано от DependencyObject)
Duration

Возвращает или задает продолжительность времени, в течение которого эта временная шкала воспроизводится, не подсчитывая повторения.

(Унаследовано от Timeline)
FillBehavior

Возвращает или задает значение, указывающее, как работает анимация после окончания его активного периода.

(Унаследовано от Timeline)
OffsetFromCenter

Возвращает или задает смещение от центра открытого целевого объекта.

OffsetFromCenterProperty

Определяет свойство зависимостей OffsetFromCenter .

OpenedLength

Возвращает или задает окончательный размер целевого элемента пользовательского интерфейса.

OpenedLengthProperty

Определяет свойство зависимостей OpenedLength .

OpenedTarget

Возвращает или задает элемент пользовательского интерфейса, который будет обрезанным.

OpenedTargetName

Возвращает или задает идентификатор имени элемента пользовательского интерфейса, который будет обрезанным.

OpenedTargetNameProperty

Определяет свойство зависимостей OpenedTargetName .

OpenedTargetProperty

Определяет свойство зависимостей OpenedTarget .

RepeatBehavior

Возвращает или задает повторяющееся поведение этой временной шкалы.

(Унаследовано от Timeline)
SpeedRatio

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

(Унаследовано от Timeline)

Методы

Имя Описание
ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Возвращает любое базовое значение, установленное для свойства зависимостей, которое будет применяться в случаях, когда анимация не активна.

(Унаследовано от DependencyObject)
GetValue(DependencyProperty)

Возвращает текущее эффективное значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомлений для прослушивания изменений в определенном экземпляре DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей в DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменении, которое ранее было зарегистрировано путем вызова RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

События

Имя Описание
Completed

Происходит при завершении воспроизведения объекта Storyboard .

(Унаследовано от Timeline)

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

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