2017-09-04 6 views
0

私はスイッチとして機能するはずの2つのボタンがあるので、ラジオボタンを使用します。しかし、ラジオボタンのスタイリングは、トグルボタンのように見えるはずです。つまり、サークルを確認する必要はありません。xamlのトグルボタンとしてのラジオボタンスタイル

私は長い間、役立つリソースを探していませんでした。

<Style TargetType="{x:Type RadioButton}" BasedOn="{StaticResource {x:Type ToggleButton}}"> 
      <Setter Property="HorizontalAlignment" Value="Center"/> 
      <Setter Property="VerticalAlignment" Value="Center"/> 
     </Style> 


    <Style TargetType="{x:Type ToggleButton}"> 
     <Setter Property="Background" Value="{StaticResource BgColor}" /> 
     <Setter Property="Foreground" Value="{StaticResource FgColor}" /> 
     <Setter Property="BorderBrush" Value="Transparent" /> 
     <Setter Property="Focusable" Value="False" /> 
     <Setter Property="Margin" Value="0" /> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Foreground" Value="{StaticResource HoverColor}" /> 
      </Trigger> 
      <Trigger Property="IsPressed" Value="True"> 
       <Setter Property="BorderBrush" Value="{StaticResource TextBlack}" /> 
      </Trigger> 
      <Trigger Property="IsChecked" Value="True"> 
       <Setter Property="BorderBrush" Value="{StaticResource TextBlack}" /> 
       <Setter Property="Foreground" Value="{StaticResource HoverColor}" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

しかし、それはサークル(ラジオプロパティ)のための黒のスペースを残しているし、マウスホバーで、それがチェックするサークルを示します。..

は、誰もがそれを達成するための最も簡単な方法を知ることができます。..

答えて

0

あなたが本当にやらなければならないことは、このように見えるためにあなたのRadioButtonのためのスタイルを定義している:

<Style TargetType="{x:Type RadioButton}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <ToggleButton Content="{Binding Path=(Content), RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type RadioButton}}}" 
           IsChecked="{Binding Path=(IsChecked), RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type RadioButton}}}"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

あなたのコアのこと。別のSettersとして追加する必要があるものを追加したり、ControlTemplateのToggleButtonを使用してスタイルを変更したりすることができます。

+0

私が言及したApp.Xamlにも同じものがあります。しかし、私が直面している問題は次のとおりです。1)デフォルトモード:予想どおりの円は表示されませんが、スペースは残ります。 – srinivas

+0

何かの理由で私のソリューションは、このコントロールに明示的なスタイリングが適用されていない場合にのみ機能します...あなたの問題を解決するためにそれを編集しましょう。 –

関連する問題