2

画面の真ん中から直径500pxくらいまで伸びる円が欲しいです。この円をアプリケーションのウィンドウとして機能させます (ユーザーは通常のウィンドウのようにドラッグします)。

これまでのところ、起動時のアニメーションで円を高さと幅 0 から 500 まで成長させることができます。それが保持されているウィンドウは透明に設定され、SizeToContent ="WidthAndHeight" に設定されます。含まれているウィンドウが円を囲んでいるため、これは良いことですが、これにより、円は画面の中心から成長しなくなり、中心から始まり、右と下に向かって成長します。

SizeToContent="WidthAndHeight" を持ちながら円を中心から大きくするにはどうすればよいですか?

これまでの私のコードは次のとおりです。

XAML

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" 
        WindowStyle="None" 
        AllowsTransparency="True" 
        Background="Transparent"  
        WindowStartupLocation="CenterScreen"
        SizeToContent="WidthAndHeight">

    <Window.Resources>
        <Storyboard x:Key="EllipseExpand">
            <DoubleAnimation From="0" To="500" Duration="0:0:5"
                             Storyboard.TargetName="MyCircle"
                             Storyboard.TargetProperty="Width"/>
            <DoubleAnimation From="0" To="500" Duration="0:0:5"
                             Storyboard.TargetName="MyCircle"
                             Storyboard.TargetProperty="Height"/>
        </Storyboard>
    </Window.Resources>

    <Ellipse Name="MyCircle" Fill="Red" Height="0" Width="0"/>

</Window>

コードビハインド

Imports System.Windows.Media.Animation

Class MainWindow
    Public Sub WindowLoaded() Handles Me.Loaded
        Dim ellipseExpand As Storyboard = FindResource("EllipseExpand")

        ellipseExpand.Begin()
    End Sub
End Class
4

1 に答える 1

0

代わりに回避策を使用しました:

楕円を大きな透明な窓に収めて、画面の中心から伸びているように見せました。ただし、楕円を画面の上部に向かってドラッグすると、楕円が押し下げられます (Windows OS は常に、見えないウィンドウの上部をクリッピングするのではなく、画面に合わせようとするため)。

この問題を克服するために、私はこのスレッドを使用しました: How do I move a wpf window into a negative top value?

于 2013-09-05T09:07:03.663 に答える