に感謝しますデフォルトスタイル。
まず、hereからスタイルを取得し、App.xaml
に入れてください。これは、ToggleSwitch
の境界と背景を表す要素である
<Rectangle x:Name="SwitchKnobBounds"
Fill="{ThemeResource ToggleSwitchFillOn}"
Stroke="{ThemeResource ToggleSwitchStrokeOn}"
StrokeThickness="{ThemeResource ToggleSwitchOnStrokeThickness}"
Width="44" Height="20" Opacity="0" RadiusY="10" Grid.Row="2" RadiusX="10" />
- その後、要素を探しSwitchKnobBounds
と呼ばれます。背景色を変更するには、ToggleSwitchFillOn
を好みの色に置き換えるだけです。 コントロールの既存の依存関係プロパティにバインドするには、Fill
プロパティを持っている必要があります(そうしないと、コントロールを拡張して独自の依存関係プロパティを追加する必要があります)。
私は個人的にBackground
を使用して、私は本当にコントロールに透明以外の異なる背景色を与えるために必要なことはありませんトップレベルGrid
「原因からBackground="Transparent"
でBackground="{TemplateBinding Background}"
を置き換えます。
はその後、あなたの
Rectangle
は次のようになります -
<Rectangle x:Name="SwitchKnobBounds"
Fill="{TemplateBinding Background}"
Stroke="{ThemeResource ToggleSwitchStrokeOn}"
StrokeThickness="{ThemeResource ToggleSwitchOnStrokeThickness}"
Width="44" Height="20" Opacity="0" RadiusY="10" Grid.Row="2" RadiusX="10" />
最後に、あなたが直接XAMLまたはコードでオン状態のBackground
色を設定することができます。
<ToggleSwitch x:Name="MyToggle" Background="Green" />
または
MyToggle.Background = Colors.Red;
あなたは** **私にSwitchKnobBoundsを私が見つけなければならない場所の詳細を教えていただけますか? –
リンクを参照してください私は答えに添付されていますか?リンクに移動し、 "SwitchKnobBounds"という名前を検索します。 –