Как узнать, является ли мой элемент управления silverlight «Свернутым» или «Свернутым» - PullRequest
0 голосов
/ 11 февраля 2012

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

Я играю с richtextbox и анимацией раскадровки. В основном, при анимации мыши до 100px, при анимации до 0px.

Это довольно просто, но я не могу понять, как определить, находится ли он в состоянии минимизации или максимизации.

Вот XAML:

<UserControl x:Class="AnotherTester.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<UserControl.Resources>
    <Storyboard x:Name="Shrink">
        <DoubleAnimation Storyboard.TargetName="textBox" 
            Storyboard.TargetProperty="Height"
            From="100" To="0" Duration="00:00:00.5" />
    </Storyboard>
    <Storyboard x:Name="Grow">
        <DoubleAnimation Storyboard.TargetName="textBox" 
            Storyboard.TargetProperty="Height"
            From="0" To="100" Duration="00:00:00.5" />
    </Storyboard>
</UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White">
    <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Width="100">
        <Rectangle x:Name="rectangle" Fill="#FF0202F9" Height="20" Stroke="Black" Width="100" MouseEnter="rectangle_MouseEnter" MouseLeave="rectangle_MouseLeave" />
        <RichTextBox x:Name="textBox" Height="100">
            <Paragraph><Run Text="This"/></Paragraph>
            <Paragraph><Run Text="is"/></Paragraph>
            <Paragraph><Run Text="some"/></Paragraph>
            <Paragraph><Run Text="awesome"/></Paragraph>
            <Paragraph><Run Text="text"/></Paragraph>
        </RichTextBox>
    </StackPanel>

</Grid>

И код сзади:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace AnotherTester
{
public partial class MainPage : UserControl
{

    public MainPage()
    {
        InitializeComponent();
    }

    private void rectangle_MouseEnter(object sender, MouseEventArgs e)
    {
        Grow.Begin();
    }

    private void rectangle_MouseLeave(object sender, MouseEventArgs e)
    {    
        Shrink.Begin();
    }
}
}

EDIT: Хорошо, я просто изменил начальную высоту элемента управления на 0px, что дало мне эффект, который я искал (все свернутые блоки, пока мы не наведем на них курсор мыши), но я все еще хотел бы знать, как проверять подобные вещи

1 Ответ

0 голосов
/ 11 февраля 2012
Решение

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

пример

Grow.Completed += (o,e) => _isCollapsed = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...