2012-02-11 12 views
0

ここではSilverlight初心者です。Silverlightコントロールが「最小化」または「最大化」されているかどうかを確認するには

リッチテキストボックスやストーリーボードのアニメーションで遊んでいます。基本的に、mouseenterは100pxに、mouseleaveは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: [OK]を、私はちょうど、0PXに制御の開始高さを変更しました私が探していた効果(私がそれらの上にマウスを置くまですべての折り畳まれたボックス)を私に与えましたが、私はまだこのようなものに対してチェックする方法を知りたいです。

012ソリューション上の

答えて

0

は、ストーリーボードの完了イベントを使用して状態を設定できるようになります。

Grow.Completed += (o,e) => _isCollapsed = true; 
+0

oooooが、私はその答えが好き!素晴らしいアイデアをありがとう。 – ledgeJumper

関連する問題