問題の新しいイメージごとに編集してください。
あなたがこれを使用することができ、余分なタイピングを気にしない場合:
<Style TargetType="RadioButton" x:Key="rb">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Grid>
<RadioButton IsChecked="{Binding Path=IsChecked, RelativeSource={RelativeSource Mode=TemplatedParent}}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Border Background="Transparent" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
の私の小さなテストアプリケーションに期待されるように、これは動作します:
のように見えます
<Grid>
<Grid.Resources>
<Style TargetType="RadioButton" x:Key="rb">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Grid>
<RadioButton IsChecked="{Binding Path=IsChecked, RelativeSource={RelativeSource Mode=TemplatedParent}}" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Border Background="Transparent" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBoxItem" x:Key="ics">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<RadioButton HorizontalAlignment="Center" VerticalAlignment="Center" />
<RadioButton HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" />
<RadioButton Style="{StaticResource rb}" Grid.Column="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<ListBox ItemContainerStyle="{StaticResource ics}">
<ListBoxItem>1</ListBoxItem>
</ListBox>
</Grid>
:

(明らかに、提供されている3番目の方法を使用したい)
これはあまり見た目にはならないが、あなたの結果がわかる。繰り返しますが、余分なタイピングと使用されるコーディング標準の欠如を許してください。
このため、マウスのホバーオーバーは視覚効果を与えませんが、ヒットテストは有効です。これがタブレット上にあり、あなたが指を追跡しない限り、これはOKだろうと私は考えている。あなただけのコントロールがより大きなサイズのものにしたい場合は
あなたがScaleTransform
オブジェクトにRenderTransform
プロパティを設定することによって、コントロールのサイズを変更することができ、次の方法
を使用することができます。
コンテナ内のすべてのRadioButton
オブジェクトのサイズを変更(ウィンドウ、ページ、グリッドなど)のキー
<Style TargetType="RadioButton" x:Key="resizeRadioButton">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="10" ScaleY="10"/>
</Setter.Value>
</Setter>
</Style>
と
<Window.Resources>
<Style TargetType="RadioButton">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="10" ScaleY="10"/>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
またはすべての使用法:
<RadioButton Style="{StaticResource resizeRadioButton}" />
、または個別に
<RadioButton>
<RadioButton.RenderTransform>
<ScaleTransform ScaleX="10" ScaleY="10"/>
</RadioButton.RenderTransform>
</RadioButton>
あなたはより大きなコントロールと大きなヒット領域(またはセットタイプのすべてのコントロールのためだけに大きなヒット領域)の組み合わせを使用したいが場合、次のことができます使用:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="RadioButton">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.5" ScaleY="1.5"/>
</Setter.Value>
</Setter>
<Setter Property="Content">
<Setter.Value>
<Border>
<Rectangle Margin="-10" Fill="Transparent" />
</Border
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
それとも別のコンテナ内のコントロールのデフォルトの動作を使用して、HorizontalAlignment="Stretch"
小道具を使いますerty、これは私が信じている左上隅にコントロールを描画します。
ストレッチプロパティを試しましたか?コンテンツの整列など、ラジオボタン自体にプロパティを設定しようとしましたか?あなたのグリッドはどんな種類のパネルの中にもあります(それは伸びを壊すからです)?あなたはラベルの代わりに国境を試しましたか? –
こんにちはメリン、はいストレッチプロパティを試してみました。私は、ラジオボタン自体のすべての可能性のあるプロパティを試しました(コンテンツの配置を含む)。グリッドはユーザーコントロールの直下にあります(そのユーザーコントロールは項目パネルに追加されますが、それは問題ではありません)。枠線はコンテンツの配置を許可しないため、ラジオボタンは左上に残ります。 –
+1あなたはスクリーンショットを持っていることになりました。これはあなたが探しているものをはるかに明確にします。 –