1

Excel では、Ctrl+C を押すと、現在のセルが四角形で囲まれ、破線が走っているように見えます。WPFで作成する方法に関するヒントはありますか?

4

1 に答える 1

4

あなたが探しているのは、通常、「マーチング・アリの境界線」と呼ばれるものです。WPF の実装は既にいくつかあります。

これは、Patric Johansson のブログからのものと、codeproject からのものです。

今後の参考のために、CodeProject からメイン コードを追加しました。

<Window.Resources>
    <Storyboard x:Key="MarchingAnts">
        <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" 
                           Storyboard.TargetName="rectangle" 
                           Storyboard.TargetProperty="(Shape.StrokeDashOffset)" 
                           RepeatBehavior="Forever">
            <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
            <SplineDoubleKeyFrame KeyTime="00:00:00.5000000"
                           Value="10"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>
<Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource MarchingAnts}"/>
    </EventTrigger>
</Window.Triggers>

<Grid x:Name="LayoutRoot">
    <Canvas x:Name="canvas" Background="#FF262626">
        <Rectangle Fill="#14FFFFFF" StrokeDashArray="5" 
            Stroke="#FFFFFFFF" 
            x:Name="rectangle" Width="50" Height="50" 
            StrokeDashOffset="0" StrokeThickness="1" 
            RadiusX="0" RadiusY="0"
            Canvas.Left="0" Canvas.Top="0"/>
        <TextBlock Width="Auto" Height="Auto" 
            FontFamily="Century Gothic" 
            FontSize="48" Foreground="#FF5B5B5B" 
            Text="MARCHING ANTS" TextWrapping="Wrap" 
            Canvas.Top="182" Canvas.Left="79"/>
    </Canvas>
</Grid>
于 2013-03-03T17:09:22.713 に答える