1
クリックイベントに応答するWPFアプリケーション(MVVMパターン)のボタンがあります。基本的に、このボタンをクリックすると背景がLightGreenになります(デフォルトの色はLightGray)。私はすでに、次のコードを使用して所望の動作を実現:今、私は、このボタンのボーダーを丸めようにする必要がありWPF丸みを帯びた罫線ボタン。色の変更に反応します。
private bool _firstScheduleButtonSelected;
public bool FirstScheduleButtonSelected
{
get { return _firstScheduleButtonSelected; }
set { _firstScheduleButtonSelected = value; NotifyPropertyChanged("FirstScheduleButtonSelected"); NotifyPropertyChanged("Background"); }
}
:FirstScheduleButtonSelected
は、によって定義されたのViewModelプロパティです
<Button Grid.Column="2" Grid.Row="6" Grid.ColumnSpan="3" Grid.RowSpan="2" Content="{Binding FirstSchedule.Message}" Command="{Binding FirstScheduleButtonClick}">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="LightGray"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding FirstScheduleButtonSelected}" Value="True">
<Setter Property="Background" Value="LightGreen"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
します。私はすでにこのソリューションHow to create/make rounded corner buttons in WPF?を試みたが、私は終わった:
<Button Grid.Column="2" Grid.Row="6" Grid.ColumnSpan="3" Grid.RowSpan="2" Content="{Binding FirstSchedule.Message}" Command="{Binding FirstScheduleButtonClick}">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border CornerRadius="15" Background="LightGray" BorderThickness="1" Padding="2">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="LightGray"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding FirstScheduleButtonSelected}" Value="True">
<Setter Property="Background" Value="LightGreen"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
が今私の境界が、実際には、丸みを帯びているが、私はボタンをクリックしたときに、それが緑色になっていません。
Q:境界線を丸くし、クリック時に色を変えるという機能を維持するには、このボタンを変更するにはどうすればよいですか?
が魅力のように働きました!どうもありがとう :) – woz