1

これが可能だとは思いませんが、皆さんの意見を見てみる価値はあります。C# で半楕円形のボタンを作成しようとしています (XAML ではなく、別のカーブ ボールを使用する可能性があります)。ボタンにあらかじめ決められたサイズが必要な場合は、画像などを使用するだけですが、サイズが変更されるため、そうではありません。詳細は次のとおりです。

  1. x半径とy半径(または幅と高さを2倍したもの)の楕円があります。

  2. 2 つのボタンで楕円全体を塗りつぶし、それぞれが楕円の半分を占めます。

  3. 楕円を超えて親にクリップされる長方形のボタンは必要ありません。ボタンごとに楕円の半分だけを除いて、実際の楕円形のボタンが必要です。

  4. ボタンを使用してこれを達成できないが、他のコントロールを使用する場合は、そのコントロールをボタンのように機能させたいと思います。

ヘルプ、アドバイス、またはポインターは非常に役立ちます。

4

3 に答える 3

4

これに答える前に、WPF アプリケーションで XAML を避ける必要がある理由を教えてください。いずれにせよ、XAML を間接的に使用していることはほぼ間違いないので、XAML を使用しない理由はありません。そうすれば、ボタンを簡単に作成できるはずです。それがまさにそのためです!

これは、レンガとモルタルの隣に立っているときに粘着テープで家を作ろうとしているようなものです! :)

于 2009-01-29T16:08:10.673 に答える
0

XAML を使用してください。真剣に XAML は最初は難しそうに見えるかもしれませんが、これを純粋にコード ビハインドで実行しようとすると、自分で作成する頭痛のようなものではありません。

カスタム WPF ボタン スタイル

Blend を使用したスタイリングの段階的な紹介

XAML レベル 100

于 2009-01-29T16:29:53.610 に答える
0

追加のトリガー (IsPressed など) を追加する必要がありますが、これによりかなり良いアイデアが得られるはずです。

<Button Height="30" Width="30">
    <Button.Style>
        <Style TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Path Name="HalfEllipse" Stroke="Black" StrokeThickness="1" Fill="Blue">
                            <Path.Data>
                                <PathGeometry>
                                    <PathFigure IsFilled="True" StartPoint="0,0">
                                        <PolyBezierSegment Points="5,30 25,30 30,0" />
                                    </PathFigure>
                                </PathGeometry>
                            </Path.Data>
                        </Path>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="HalfEllipse" Property="Fill">
                                    <Setter.Value>
                                        <SolidColorBrush Color="Green"/>
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Button.Style>
</Button>

詳細については、このページを参照してください: http://www.codeproject.com/KB/WPF/glassbuttons.aspx

于 2010-07-28T19:47:43.427 に答える