Edit for each new image.
If you do not mind extra typing, you can use this:
<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>
This works as expected in my little test application:
<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>
What does it look like:

(Obviously, you will want to use the third method provided)
I know this doesn't seem like much, but it gives you its result. Again, sorry for the extra typing and lack of coding standards.
To do this, hovering the mouse will not give a visual effect, but the hit test is valid. I assume that this will be normal while it is on the tablet and you will not track your fingers.
If you want the control to be larger, you can use the following methods
You can resize the control by setting the RenderTransform property to a RenderTransform object.
Resize all RadioButton objects in the container (window, page, grid, etc.)
<Window.Resources> <Style TargetType="RadioButton"> <Setter Property="RenderTransform"> <Setter.Value> <ScaleTransform ScaleX="10" ScaleY="10"/> </Setter.Value> </Setter> </Style> </Window.Resources>
Or all with a key
<Style TargetType="RadioButton" x:Key="resizeRadioButton"> <Setter Property="RenderTransform"> <Setter.Value> <ScaleTransform ScaleX="10" ScaleY="10"/> </Setter.Value> </Setter> </Style>
Using:
<RadioButton Style="{StaticResource resizeRadioButton}" />
Or individually
<RadioButton> <RadioButton.RenderTransform> <ScaleTransform ScaleX="10" ScaleY="10"/> </RadioButton.RenderTransform> </RadioButton>
If you want to use a combination of a larger control and a larger hit area (or just a large hit area for all controls of the set type), you can use:
<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>
Or simply use the default control behavior in another container and use the HorizontalAlignment="Stretch" property, however this will cause the control to be in the upper left corner.