当我在VC#2013的编辑器中尝试向WPF表单添加多个元素时,上一个元素会消失。最后,表单中不能有多个项目。我已经写了一些代码,所以我不希望从头开始。这种形式除了无边界、全屏和最大化之外没有什么特别的。这是当前表单的XAML代码:
<Window x:Class="queue_bigscreen.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="1080" Width="1920" WindowStyle="None" ResizeMode="NoResize" WindowState="Maximized" Background="#FF9EA7CD">
<Label x:Name="nowServingLabel" Content="0" Margin="42,56,1160,131" Foreground="White" Height="893" FontSize="700" HorizontalContentAlignment="Center">
<Label.Effect>
<DropShadowEffect ShadowDepth="13"/>
</Label.Effect>
</Label>
</Window>
这是我选择一个文本框并尝试将其添加到表单后得到的:
<Window x:Class="queue_bigscreen.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="1080" Width="1920" WindowStyle="None" ResizeMode="NoResize" WindowState="Maximized" Background="#FF9EA7CD">
<TextBlock HorizontalAlignment="Left" Margin="1332,382,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/>
正如你所看到的,如果我尝试添加其他内容,标签就会消失,我添加的文本框也会随之消失。我是做错了什么,还是一个已知的错误?
您需要将项目放入容器中。Window
只能有一个根元素,因此要在表单上获得多个元素,需要有一个允许子元素的元素。
最接近Windows窗体Form
的是Grid
。然后,您可以在其中放置控件,并进行绝对和相对定位。它也是默认的,所以我假设您不小心从XAML中删除了它(或者在设计器中按delete时过于激进)。
带有标签和文本框的表单示例:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Label Content="Label" HorizontalAlignment="Left" Margin="23,30,0,0" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="66,32,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
</Grid>
</Window>