提问人:Dominique 提问时间:11/17/2023 最后编辑:AShDominique 更新时间:11/17/2023 访问量:41
如何在一个 XAML 中组合 StackPanel 和 Grid
How to combine StackPanel and Grid within one XAML
问:
我有一个 ,它包含(在主内部)一个带有边距的 ,它在我的 中创建一个矩形,这非常简单:UserControl
Grid
StackPanel
UserControl
<Grid Name="mainGrid" HorizontalAlignment="Center" VerticalAlignment="Top" >
<StackPanel Orientation="Vertical" Margin="15">
结果:
我知道将“拆分”为不同的部分非常容易(因为我想在以下部分添加一个上下文菜单):UserControl
UserControl
<Grid Name="mainGrid" HorizontalAlignment="Center" VerticalAlignment="Top" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.77*"></RowDefinition>
<RowDefinition Height="0.23*"></RowDefinition>
</Grid.RowDefinitions>
</Grid>
结果:
现在我想将两者结合起来:我希望我的同时包含 StackPanel 和 Grid,但这似乎并不那么简单:UserControl
<Grid Name="mainGrid" HorizontalAlignment="Center" VerticalAlignment="Top" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.77*"></RowDefinition>
<RowDefinition Height="0.23*"></RowDefinition>
</Grid.RowDefinitions>
</Grid>
<StackPanel Orientation="Vertical" Margin="15">
预期结果:
实际结果是一条错误消息:
XLS0509
Property elements cannot be in the middle of an element's content.
They must be before or after the content.
我该如何解决这个问题?
提前致谢
答:
0赞
Andy
11/17/2023
#1
我只能从你发布的 xaml 中猜到你做错了什么。
我怀疑您在网格之外和用户控件标记内有一些东西。我无法复制该特定错误。但我可以让它工作。
这对我来说很好用:
<UserControl x:Class="WpfApp7.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp7"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid Name="mainGrid" HorizontalAlignment="Center" VerticalAlignment="Top" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.77*"></RowDefinition>
<RowDefinition Height="0.23*"></RowDefinition>
</Grid.RowDefinitions>
</Grid>
<StackPanel Orientation="Vertical" Margin="15">
<Rectangle Fill="Red" Height="20" Width="20"/>
</StackPanel>
</Grid>
</UserControl>
评论
0赞
Dominique
11/17/2023
是的,谢谢,这是我以前尝试过的,但没有奏效,但现在出于某种神奇的原因,它似乎仍然有效。非常感谢您的支持。
0赞
Dominique
11/17/2023
现在我已经看到了:我的“主网格”有一些行和列定义。这些需要在“主电网”声明之后直接定义,我在这些定义之前添加了新的定义。对不起,负担。Grid
评论
StackPanel
Grid