1

ずっと前にWindowsフォームで実装したクラスを新しいWPFプロジェクトで再利用しようとしています。OnRenderこのクラスは、フォームにさまざまなオブジェクトを描画するオブジェクトを使用するメソッドをオーバーライドしますGraphics。WPFでクラスを使用しているので、Graphicsオブジェクトをオブジェクトに置き換えましたDrawingContextが、クラスの一部のメソッドがGraphics実装されていません。特に、メソッドFillPie、、は私が必要とするものです。これらのメソッドを実装するクラスは存在しますか?これらのメソッドを実装するにはどうすればよいですか?FillEllipseDrawBeziers

4

1 に答える 1

1

これは、このようなものが実際にどのように機能するかを示す簡単な例です。

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="500"
        Height="500">
    <StackPanel>
        <Slider Name="PositionSlider"
                Margin="10"
                Maximum="50"
                Minimum="1"
                Value="10" />
        <Canvas Width="300" Height="300">
            <Path Fill="Gold"
                  Stroke="Black"
                  StrokeThickness="1">
                <Path.Data>
                    <EllipseGeometry Center="150,150"
                                     RadiusX="{Binding ElementName=PositionSlider,
                                                       Path=Value}"
                                     RadiusY="{Binding ElementName=PositionSlider,
                                                       Path=Value}" />
                </Path.Data>
            </Path>
        </Canvas>
    </StackPanel>
</Window>

上記の WPF は、単純なスライダーと円を示しています。円の半径は、スライダーの値にデータバインドされています。スライダーを動かすと円が大きくなったり小さくなったりします。古い世界では、スライダー (つまり、ズーム状態が変更されたとき) に、より大きな小さな円を描く再描画が行われます。しかし、WPF の世界では、これは依存関係プロパティとデータバインディングによって処理されます。

ここに画像の説明を入力

上記の例は非常に基本的なものです。値コンバーターと依存関係プロパティを実装するオブジェクトを使用してマルチバインディング バインディングを行うことで、より複雑なことを行うことができます。

于 2012-09-11T16:20:44.817 に答える