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つの方法

推薦する

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...

Linux コマンドにおける Ctrl+z、Ctrl+c、Ctrl+d の違いと使い方

Linux で Ctrl+c、Ctrl+d、Ctrl+z はどういう意味ですか? Ctrl+c と ...

Nginx 外部ネットワーク アクセス イントラネット サイト構成操作

背景:サイトはフロントエンドとバックエンドから分離されています: vue+springbootフロン...

React antdはフォームの動的な増減を実現します

以前、動的フォームを記述しているときに落とし穴に遭遇しました。インデックスの添え字をキーとして使用す...

VueはElement el-uploadコンポーネントを使用してピットに足を踏み入れます

目次1. 基本的な使い方2. 画像量の制御3. 画像形式の制限/複数の画像を選択可能補足: vueプ...

Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介

Unix/Linux システムの nobody ユーザーとは何ですか? 1. Windows システ...

CentOS 7.9 の zabbix5.0.14 のインストールと設定プロセス

目次1. 基本的な環境設定2. データベースをインストールする3. zabbix関連コンポーネントを...

MySQL infobrightのインストール手順

目次1. 次のように、「rpm -ivh インストール パッケージ」コマンドを使用して rpm パッ...

MySQL Community Server 5.7.19 インストール ガイド (詳細)

MySQL公式サイトのzipファイルのダウンロードリンク https://dev.mysql.co...

MYSQL ローカルインストールと問題解決

序文この記事はかなり詳細で、少し面倒です。他のチュートリアル ドキュメントでは多くの手順が省略されて...

MySQL ログトリガー実装コード

SQL文 ドロップトリガー もし sys_menu_edit が存在します。 各行のsys_menu...

HTML レイヤード ボックス シャドウ効果のサンプル コード

まず、画像を見てみましょう。今日はこのエフェクトを作成します。 実は、何でもないんです。Web ペー...

Vue フロントエンドと Django バックエンドを使用して、一定期間内のデータをクエリする方法

序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...

MySQL の昇順および降順データソートの実装

データの昇順、降順ソート1. フィールド名による単一フィールドのソート順機能:どのフィールドを基準に...