1

マウスを「エキスパンダー」ビットの上に置くと、データグリッドを含むポップアップパネルを実装できるかどうかを調べようとしています。

Visual Studio のツールボックスのように動作するものを探しています。

私はそれが何と呼ばれているのか本当にわからないので、検索に大きな問題を抱えています。

自分自身をよりよく説明する必要がある場合はお知らせください。

4

2 に答える 2

1

AvalonDockを使用してこれを実現できます

ここに画像の説明を入力

これは、次のコードを使用して XAML で行われました。

<avalondock:DockingManager x:Name="dockingManager">
    <avalondock:LayoutRoot>
        <avalondock:LayoutRoot.LeftSide>
            <avalondock:LayoutAnchorSide>
                <avalondock:LayoutAnchorGroup>
                    <avalondock:LayoutAnchorable Title="Autohidden Content">
                        <DataGrid>
                            <DataGrid.Columns>
                                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col1"/>
                                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col2"/>
                                <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col3"/>
                            </DataGrid.Columns>
                        </DataGrid>
                    </avalondock:LayoutAnchorable>
                </avalondock:LayoutAnchorGroup>
            </avalondock:LayoutAnchorSide>
        </avalondock:LayoutRoot.LeftSide>
    </avalondock:LayoutRoot>
</avalondock:DockingManager>
于 2012-09-05T14:00:45.333 に答える
0

ポップアップ/表示/スライドイン/何らかの形でスムーズに動作するあらゆる種類のメニューを実現するために、WPF アニメーションを容易にします。

たとえば、StackPanel に基づいて任意の方法でメニュー コントロールを構築し、カスタム アニメーションをその位置プロパティに割り当てて、表示および非表示にします。

特定のプロパティに対して開始値、ターゲット値、およびこれら 2 つの間の遷移を行う方法を指定するだけなので、アニメーションの使用は非常に簡単です。

たとえば、Stackpanel を拡大および縮小するには、次のようにします。

// suppose you have a stackpanel named sp.

// create the actual animation
DoubleAnimation myDoubleAnimation = new DoubleAnimation();
myDoubleAnimation.From = 100;
myDoubleAnimation.To = 300;
myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(5));

// cerate the storyboard which comprise all your single animations into a compound animation - a storyboard.
StoryBoard myStoryboard = new Storyboard();
myStoryboard.Children.Add(myDoubleAnimation);

// link the animation with the object it is supposed to work on
Storyboard.SetTargetName(myDoubleAnimation, sp.Name);

// specify the target property of ypur StackPanel which should be affected by the animation
Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(Rectangle.Width));

完全な紹介については、http: //msdn.microsoft.com/en-us/library/ms752312.aspxから読み始めることができます。

また、イージング関数についてもお読みください。これらの関数を使用すると、より洗練されたアニメーションを作成できます。

于 2012-09-05T13:50:45.027 に答える