RepositionThemeTransition RepositionThemeTransition RepositionThemeTransition RepositionThemeTransition Class

Definition

Reacts to layout moves when no context is set and a trigger of move is passed.

public : sealed class RepositionThemeTransition : Transition, IRepositionThemeTransition, IRepositionThemeTransition2
struct winrt::Windows::UI::Xaml::Media::Animation::RepositionThemeTransition : Transition, IRepositionThemeTransition, IRepositionThemeTransition2
public sealed class RepositionThemeTransition : Transition, IRepositionThemeTransition, IRepositionThemeTransition2
Public NotInheritable Class RepositionThemeTransition Inherits Transition Implements IRepositionThemeTransition, IRepositionThemeTransition2
<RepositionThemeTransition ../>
Inheritance
RepositionThemeTransitionRepositionThemeTransitionRepositionThemeTransitionRepositionThemeTransition
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Examples

The following example applies a RepositionThemeTransition to a button. When you click the button, its margin changes, which changes its position. This position change is animated.

<Button Content="Click to reposition" Click="Button_PointerPressed"
        x:Name="animatedButton">
    <Button.Transitions>
        <TransitionCollection>
            <RepositionThemeTransition/>
        </TransitionCollection>
    </Button.Transitions>
</Button>
private void Button_Clicked(object sender, RoutedEventArgs e)
{
    animatedButton.Margin = new Thickness(100);
}
<Button Content="Remove Rectangle" Click="RemoveButton_Click"/>

<ItemsControl Grid.Row="1" x:Name="rectangleItems">
    <ItemsControl.ItemContainerTransitions>
        <TransitionCollection>
            
            <!-- Without this, there would be no animation when items 
                 are removed. -->
            <RepositionThemeTransition/>
        </TransitionCollection>
    </ItemsControl.ItemContainerTransitions>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapGrid Height="400"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    
    <!-- All these rectangles are just to demonstrate how the items
         in the grid re-flow into position when one of the child items
         are removed. -->
    <ItemsControl.Items>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
        <Rectangle Fill="Red" Width="100" Height="100" Margin="10"/>
    </ItemsControl.Items>
</ItemsControl>
private void RemoveButton_Click(object sender, RoutedEventArgs e)
{
    if (rectangleItems.Items.Count > 0)
        rectangleItems.Items.RemoveAt(0);
}

Remarks

The RepositionThemeTransition is not designed to be used with Panels that perform UI virtualization such as the default Panel on a ListView or GridView control.

Constructors

RepositionThemeTransition() RepositionThemeTransition() RepositionThemeTransition() RepositionThemeTransition()

Initializes a new instance of the RepositionThemeTransition class.

public : RepositionThemeTransition()
RepositionThemeTransition() const;
public RepositionThemeTransition()
Public Sub New()
See Also

Properties

Dispatcher Dispatcher Dispatcher Dispatcher

Gets the CoreDispatcher that this object is associated with. The CoreDispatcher represents a facility that can access the DependencyObject on the UI thread even if the code is initiated by a non-UI thread.

(Inherited from DependencyObject)

IsStaggeringEnabled IsStaggeringEnabled IsStaggeringEnabled IsStaggeringEnabled

Gets or sets a value that determines whether the transition staggers rendering of multiple items, or renders all items at once.

public : Platform::Boolean IsStaggeringEnabled { get; set; }
bool IsStaggeringEnabled(); void IsStaggeringEnabled(bool isstaggeringenabled);
public bool IsStaggeringEnabled { get; set; }
Public ReadWrite Property IsStaggeringEnabled As bool
<RepositionThemeTransition IsStaggeringEnabled="bool"/>
Value
bool bool

true if the animation staggers rendering of multiple items. false if the animation renders all items at once. The default is true.

Additional features and requirements
Device family
Windows 10 Anniversary Edition (introduced v10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v3)

Examples

This example shows how to use a RepositionThemeTransition with a ListView.

<ListView>
    <ListView.ItemContainerTransitions>
        <TransitionCollection>
            <!-- Animate when items are removed, 
                 but don't stagger the animation across columns. -->
            <RepositionThemeTransition IsStaggeringEnabled="False"/>
        </TransitionCollection>
    </ListView.ItemContainerTransitions>
</ListView>
var lv = new ListView();
var transition = new RepositionThemeTransition();
transition.IsStaggeringEnabled = false;
lv.ItemContainerTransitions.Add(transition);
auto lv = ref new ListView();
auto transition = ref new RepositionThemeTransition();
transition->IsStaggeringEnabled = false;
lv->ItemContainerTransitions->Append(transition);

Remarks

Available starting in Windows 10, version 1607.

The ListView control utilizes the RepositionThemeTransition to animate items when an item’s position changes. Unlike some of the other theme transitions, when more than one item’s position changes, the RepositionThemeTransition staggers the animation across the collection. (The second item lags slightly behind the first item, the third behind the second, etc.) Set this property to false to make all items render at once.

IsStaggeringEnabledProperty IsStaggeringEnabledProperty IsStaggeringEnabledProperty IsStaggeringEnabledProperty

Identifies the IsStaggeringEnabled dependency property.

public : static DependencyProperty IsStaggeringEnabledProperty { get; }
static DependencyProperty IsStaggeringEnabledProperty();
public static DependencyProperty IsStaggeringEnabledProperty { get; }
Public Static ReadOnly Property IsStaggeringEnabledProperty As DependencyProperty
Value
DependencyProperty DependencyProperty

The identifier for the IsStaggeringEnabled dependency property.

Additional features and requirements
Device family
Windows 10 Anniversary Edition (introduced v10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v3)

Methods

ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty) ClearValue(DependencyProperty)

Clears the local value of a dependency property.

(Inherited from DependencyObject)

GetAnimationBaseValue(DependencyProperty) GetAnimationBaseValue(DependencyProperty) GetAnimationBaseValue(DependencyProperty) GetAnimationBaseValue(DependencyProperty)

Returns any base value established for a dependency property, which would apply in cases where an animation is not active.

(Inherited from DependencyObject)

GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty) GetValue(DependencyProperty)

Returns the current effective value of a dependency property from a DependencyObject.

(Inherited from DependencyObject)

ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty) ReadLocalValue(DependencyProperty)

Returns the local value of a dependency property, if a local value is set.

(Inherited from DependencyObject)

RegisterPropertyChangedCallback(DependencyProperty,DependencyPropertyChangedCallback) RegisterPropertyChangedCallback(DependencyProperty,DependencyPropertyChangedCallback) RegisterPropertyChangedCallback(DependencyProperty,DependencyPropertyChangedCallback) RegisterPropertyChangedCallback(DependencyProperty,DependencyPropertyChangedCallback)

Registers a notification function for listening to changes to a specific DependencyProperty on this DependencyObject instance.

(Inherited from DependencyObject)

SetValue(DependencyProperty,Object) SetValue(DependencyProperty,Object) SetValue(DependencyProperty,Object) SetValue(DependencyProperty,Object)

Sets the local value of a dependency property on a DependencyObject.

(Inherited from DependencyObject)

UnregisterPropertyChangedCallback(DependencyProperty,Int64) UnregisterPropertyChangedCallback(DependencyProperty,Int64) UnregisterPropertyChangedCallback(DependencyProperty,Int64) UnregisterPropertyChangedCallback(DependencyProperty,Int64)

Cancels a change notification that was previously registered by calling RegisterPropertyChangedCallback.

(Inherited from DependencyObject)

See Also