提问人:iwanlenin 提问时间:10/29/2023 更新时间:11/1/2023 访问量:59
.NET MAUI 图像元素中断网格比率
.NET MAUI image element break Grid ratio
问:
我有一个网格,在第一个边框内有一些边框和图像:
<Grid Margin="15" RowDefinitions=".4*,.1*,.1*,.4*">
<Border
Grid.Row="0"
Grid.RowSpan="2"
Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle
CornerRadius="35,35,35,35" />
</Border.StrokeShape>
<Image
Aspect="AspectFill"
Source="cup.jpg" />
</Border>
我想要的是这样的:
但是,如果我在网格的第一行添加图像,我会得到这张照片:
有人可以告诉我为什么图像会破坏布局吗? 整个布局,如果你想玩:
<Grid
Margin="15"
RowDefinitions=".4*,.1*,.1*,.4*">
<Border
Grid.Row="0"
Grid.RowSpan="2"
Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle
CornerRadius="35,35,35,35" />
</Border.StrokeShape>
<Image
Aspect="AspectFill"
Source="cup.jpg" />
</Border>
<Border
Grid.Row="1"
Grid.RowSpan="1"
Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle
CornerRadius="35,35,35,35" />
</Border.StrokeShape>
</Border>
<Border
Grid.Row="2"
Grid.RowSpan="1"
Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle
CornerRadius="35,35,35,35" />
</Border.StrokeShape>
</Border>
<Border
Grid.Row="3"
Grid.RowSpan="1"
Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle
CornerRadius="35,35,35,35" />
</Border.StrokeShape>
</Border>
</Grid>
答:
1赞
Jianwei Sun - MSFT
10/30/2023
#1
我测试了您提供的代码,但它运行良好。下面是完整的 .xaml 代码:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiApp3.MainPage"
BackgroundColor="Black">
<Grid Margin="15"
RowDefinitions=".4*,.1*,.1*,.4*">
<Border Grid.Row="0"
Grid.RowSpan="2"
Stroke="Black">
<Border.StrokeShape>
<RoundRectangle CornerRadius="35,35,35,35" />
</Border.StrokeShape>
<Image Aspect="AspectFill"
Source="sum.jpg" />
</Border>
<Border Grid.Row="1" Grid.RowSpan="1" Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle CornerRadius="35,35,35,35" />
</Border.StrokeShape>
</Border>
<Border Grid.Row="2" Grid.RowSpan="1" Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle CornerRadius="35,35,35,35" />
</Border.StrokeShape>
</Border>
<Border Grid.Row="3" Grid.RowSpan="1" Stroke="{StaticResource DarkGray}">
<Border.StrokeShape>
<RoundRectangle CornerRadius="35,35,35,35" />
</Border.StrokeShape>
<Image Aspect="AspectFill" Source="sss.png" />
</Border>
</Grid>
</ContentPage>
这就是效果。
更新
创建一个新的干净项目,并且还与其他图像(如果它自己这样做的图像一样)可以修复它。
评论
0赞
iwanlenin
10/30/2023
与我的图像相同的代码: imgur.com/D1uqFYC 这就是我没有得到的。问题出在哪里。
0赞
Jianwei Sun - MSFT
10/30/2023
这很奇怪......如果您创建一个新项目来运行代码,它会正常工作吗?
0赞
iwanlenin
10/30/2023
是的。很奇怪。我用一个新的干净项目和其他图像(以防图像本身这样做)做到了这一点。
0赞
Jianwei Sun - MSFT
10/31/2023
好的,我根据您的回复编辑了答案。
0赞
iwanlenin
11/1/2023
#2
没有找到问题的根本原因,但是在多次重新启动并清理解决方案后,它以某种方式以正确的方式显示元素: 最终结果
评论