我有一个
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>
结果:
现在我想将两者结合起来:我希望我的
UserControl
同时包含StackPanel和Grid,但这似乎并不那么简单:
<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.
我该如何解决这个问题?
提前致谢
我只能从你发布的 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>