MAUI中如何禁用XAML样式继承?解决Border阴影被Entry继承问题
解决Border阴影被Entry继承的问题
出现这个情况是因为MAUI里Entry的默认视觉实现会继承父元素的Shadow属性,而Label这类控件的模板没做相关绑定,所以不受影响。你可以用以下两种方式解决:
直接给每个Entry显式取消阴影
在Entry标签里添加Shadow="{x:Null}",强制清空继承的阴影属性,示例代码:<Border ShadowColor="Gray" ShadowRadius="10" ShadowOffset="5,5"> <VerticalStackLayout> <Label Text="测试文本"/> <Entry Placeholder="第一个输入框" Shadow="{x:Null}"/> <Entry Placeholder="第二个输入框" Shadow="{x:Null}"/> </VerticalStackLayout> </Border>用样式统一处理多个Entry
如果页面里有很多Entry,用样式批量设置更高效。在页面的Resources里定义针对Entry的样式,强制把Shadow设为null:<ContentPage.Resources> <Style TargetType="Entry"> <Setter Property="Shadow" Value="{x:Null}"/> </Style> </ContentPage.Resources> <Border ShadowColor="Gray" ShadowRadius="10" ShadowOffset="5,5"> <VerticalStackLayout> <Label Text="测试文本"/> <Entry Placeholder="第一个输入框"/> <Entry Placeholder="第二个输入框"/> </VerticalStackLayout> </Border>
内容的提问来源于stack exchange,提问作者AndyW
相关产品推荐
相关产品推荐

