سؤال

ولدي حاليا مجموعة من الأزرار التي أود أن وضع المشغلات بحيث يكون لكل واحد من شأنها أن تؤدي نفس الرسوم المتحركة. هل هناك طريقة في XAML ل'تمرير' الهدف إلى لوحة العمل لدرجة أنني لم يكن لديك لإعادة كتابة القصة المصورة في كل مرة لكل هدف؟

هل كانت مفيدة؟

المحلول

إذا لم تقم بتعيين تحديد هدف واضح، والهدف <م> يجب أن العنصر الذي يتم تطبيق الرسوم المتحركة. وأود أن تحديد الاسلوب مع الزناد / الرسوم المتحركة على ذلك، وتطبيق أسلوب لتلك الأزرار الخاصة التي تريد يحمل هذا السلوك. على سبيل المثال:

<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
    <Style.Resources>
        <Storyboard x:Key="OnMouseEnterStoryboard">
            <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" To="180" />
        </Storyboard>
        <Storyboard x:Key="OnMouseLeaveStoryboard">
            <DoubleAnimation BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" To="0" />
        </Storyboard>
    </Style.Resources>
    <Style.Triggers>
        <EventTrigger RoutedEvent="Mouse.MouseLeave">
            <RemoveStoryboard BeginStoryboardName="OnMouseEnterStoryboard_BeginStoryboard"/>
            <BeginStoryboard x:Name="OnMouseLeaveStoryboard_BeginStoryboard" Storyboard="{StaticResource OnMouseLeaveStoryboard}"/>
        </EventTrigger>
        <EventTrigger RoutedEvent="Mouse.MouseEnter">
            <BeginStoryboard x:Name="OnMouseEnterStoryboard_BeginStoryboard" Storyboard="{StaticResource OnMouseEnterStoryboard}"/>
            <RemoveStoryboard BeginStoryboardName="OnMouseLeaveStoryboard_BeginStoryboard"/>
        </EventTrigger>
    </Style.Triggers>
    <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
    <Setter Property="RenderTransform">
        <Setter.Value>
            <RotateTransform/>
        </Setter.Value>
    </Setter>
</Style>

وبعد ذلك على كل زر تريد تتصرف بهذه الطريقة:

<Button Style="{StaticResource MyButtonStyle}" ... />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top