哪个.NET版本集成了修复RadioButton间距的MAUI PR#8292修复?
- 你提到的PR#8292(修复RadioButton默认模板)首次集成在.NET 8正式版中,.NET 7版本并未包含这个修复。
针对当前.NET 7环境的解决方案
方案1:升级到.NET 8
Visual Studio for Mac 2022需要更新到17.6及以上版本才能支持.NET 8正式版。升级步骤:
- 打开Visual Studio for Mac,通过菜单栏的
Visual Studio > Check for Updates完成IDE升级 - 安装.NET 8 SDK(IDE更新时通常会自动提示安装,也可手动获取)
- 右键你的MAUI项目,选择
Properties > Application > Target framework,切换为.NET 8.0
方案2:手动自定义ControlTemplate(无需升级)
如果暂时无法升级,可通过自定义RadioButton的模板来修复间距问题,示例代码如下:
<ContentPage.Resources> <ControlTemplate x:Key="FixedRadioButtonTemplate"> <Border BackgroundColor="Transparent" Stroke="{TemplateBinding Stroke}" StrokeThickness="{TemplateBinding StrokeThickness}" StrokeShape="{TemplateBinding StrokeShape}" Padding="4"> <Grid ColumnDefinitions="Auto,*" VerticalOptions="Center" HorizontalOptions="Start"> <Ellipse x:Name="CheckOuterCircle" WidthRequest="20" HeightRequest="20" Fill="{TemplateBinding Color}" Stroke="{TemplateBinding Stroke}" StrokeThickness="2" Margin="0,0,8,0"/> <!-- 调整此处Margin控制按钮与文本的间距 --> <Ellipse x:Name="CheckInnerCircle" WidthRequest="10" HeightRequest="10" Fill="{TemplateBinding Stroke}" IsVisible="False" Margin="0,0,8,0"/> <Label Grid.Column="1" Text="{TemplateBinding Content}" FontAttributes="{TemplateBinding FontAttributes}" FontSize="{TemplateBinding FontSize}" TextColor="{TemplateBinding TextColor}" VerticalOptions="Center"/> </Grid> </Border> </ControlTemplate> </ContentPage.Resources> <!-- 使用自定义模板 --> <RadioButton Content="选项1" ControlTemplate="{StaticResource FixedRadioButtonTemplate}"/> <RadioButton Content="选项2" ControlTemplate="{StaticResource FixedRadioButtonTemplate}"/>
你可以根据需求调整模板中Ellipse的Margin值,修正按钮与文本之间的间距问题。
内容的提问来源于stack exchange,提问作者Derek Mitchell
相关产品推荐
相关产品推荐

