XAML でボタンを円として再描画する方法

XAML でボタンを円として再描画する方法
XAML レイアウトを使用する場合、インターフェイスを Metro 風にするために、一部のボタンではデフォルトの四角形ではなく円を使用する必要がある場合があります。次のボタン スタイルはこの問題を解決し、必要に応じて変更できます。もちろん、Bland を使い慣れているなら、それを直接使って必要なスタイルを描画することもできますが、コードを貼り付けたほうが早いでしょうか?

コードをコピー
コードは次のとおりです。

<Style x:Key="btnNext" TargetType="ボタン">
<Setter プロパティ="テンプレート">
<Setter.値>
<コントロールテンプレート ターゲットタイプ="ボタン">
<グリッド>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="共通状態">
<VisualState x:Name="押された">
<ストーリーボード>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="rectangle">
<DiscreteObjectKeyFrame キータイム="0">
<離散オブジェクトキーフレーム.値>
<厚さ>-3</厚さ>
</DiscreteObjectKeyFrame.Value>
</離散オブジェクトキーフレーム>
</オブジェクトアニメーションキーフレームを使用>
</ストーリーボード>
</ビジュアル状態>
<VisualState x:Name="Normal"/>
<VisualState x:Name="無効"/>
<VisualState x:Name="マウスオーバー"/>
</ビジュアル状態グループ>
<VisualStateGroup x:Name="フォーカス状態">
<VisualState x:Name="フォーカス"/>
</ビジュアル状態グループ>
</VisualStateManager.VisualStateGroups>
<Rectangle x:Name="rectangle" RadiusY="25" RadiusX="25" Stroke="Blue" StrokeThickness="4">
</長方形>
<ContentPresenter Horizo​​ntalAlignment="{TemplateBinding Horizo​​ntalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</グリッド>
</コントロールテンプレート>
</Setter.Value>
</セッター>
<Setter プロパティ="マージン" 値="5"/>
<Setter プロパティ="幅" 値="50"/>
<Setter プロパティ="高さ" 値="50"/>
<Setter プロパティ="FontSize" 値="120"/>
<Setter プロパティ="前景" 値="白"/>
</スタイル>

<<:  VUEのデータプロキシとイベントの詳細な説明

>>:  CSSの優先度を理解する2つの方法

推薦する

Tomcat イメージをインストールして Docker に Web プロジェクトをデプロイする方法を簡単に説明します。

1. Tomcatをインストールする1. Docker HubでTomcatイメージを見つける d...

MySQLスローログクエリの詳細な説明

遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...

Reactのようなフレームワークをゼロから作成する

最近、インターネットで「Build your own React」という記事を見ました。著者は、シン...

テキストエリアのテキスト入力領域に改行を実装する方法

textarea 入力領域でテキストを折り返す場合は、<br/> と入力すると <...

Typora コードブロックのカラーマッチングとタイトルシリアル番号実装コード

効果: タイトルには独自のシリアル番号があり、コードブロックには配色があり、コードブロックの左上隅に...

ルート変更を監視するJavaScriptの詳細な説明

目次歴史pushState() メソッドpushState() の使用シナリオreplaceStat...

CSS 動的高さ遷移アニメーション効果の実装

この質問は、Nuggets のメッセージから生まれました。友人が、次のコードの高さ遷移アニメーション...

リフレッシュリダイレクトを実現する HTML ヘッドタグメタ

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

mysql mycat ミドルウェアのインストールと使用

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

JavaScriptプロトタイプチェーンを理解する

目次1. プロトタイプとプロトタイプチェーンの平等関係を理解する2: プロトタイプとプロトタイプ チ...

MySQLをシンプルに学ぶ

序文データベースは常に私の弱点でした。自分の経験 (python+sqlalchemy) を組み合わ...

Vueはデータを初期状態にリセットします

場合によっては、データ内のデータを再利用する必要がありますが、データ内のデータはさまざまなフォーム、...

CSSレイアウトにおけるフローティング問題に対する4つの解決策の詳細な説明

1. 原因:サブボックスをフロートに設定した後の効果: 青いボックスをフロートに設定すると、標準のド...

Linux での Hbase のインストールと設定のチュートリアル

目次Linux での Hbase のインストールと設定1. Hbaseインストールパッケージをダウン...

MySQL CHARとVARCHARの選択方法

目次VARCHAR 型と CHAR 型結論: VARCHAR 型と CHAR 型VARCHAR と ...