C# 将文本框放在画布上方,然后放在下方
我有三张画布,每一张都有文本框。 第一个画布包含一个比画布大的文本框,应该位于下面画布的顶部。C# 将文本框放在画布上方,然后放在下方,c#,wpf,xaml,canvas,C#,Wpf,Xaml,Canvas,我有三张画布,每一张都有文本框。 第一个画布包含一个比画布大的文本框,应该位于下面画布的顶部。 我尝试使用z-index,但画布似乎总是位于文本框的顶部。您可以明确创建项目容器,即ListBoxItems ListBoxItems将是ListBox的ItemsPanel的直接子元素,因此有一个公共父元素,这是使ZIndex属性工作所必需的: <ListBox> <ListBoxItem Panel.ZIndex="1"> <Canvas ..
我尝试使用z-index,但画布似乎总是位于文本框的顶部。您可以明确创建项目容器,即ListBoxItems ListBoxItems将是ListBox的ItemsPanel的直接子元素,因此有一个公共父元素,这是使ZIndex属性工作所必需的:
<ListBox>
<ListBoxItem Panel.ZIndex="1">
<Canvas ...>
...
</Canvas>
</ListBoxItem>
<ListBoxItem>
<Canvas ...>
...
</Canvas>
</ListBoxItem>
<ListBoxItem>
<Canvas ...>
...
</Canvas>
</ListBoxItem>
</ListBox>
...
...
...
您可以明确地创建项目容器,即ListBoxItems
ListBoxItems将是ListBox的ItemsPanel的直接子元素,因此有一个公共父元素,这是使ZIndex属性工作所必需的:
<ListBox>
<ListBoxItem Panel.ZIndex="1">
<Canvas ...>
...
</Canvas>
</ListBoxItem>
<ListBoxItem>
<Canvas ...>
...
</Canvas>
</ListBoxItem>
<ListBoxItem>
<Canvas ...>
...
</Canvas>
</ListBoxItem>
</ListBox>
...
...
...
我还将应用一些样式,使您的代码更短,更易于维护。在使用克莱门斯溶液之前,应该看起来有点像:
<ListBox>
<ListBox.Resources>
<Style TargetType="{x:Type Canvas}">
<Setter Property="Width" Value="500" />
<Setter Property="Background" Value="Blue" />
<Setter Property="Height" Value="40" />
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Width" Value="30" />
<Setter Property="Canvas.Top" Value="10" />
<Setter Property="Height" Value="20" />
</Style>
</ListBox.Resources>
<Canvas Name="firstCanvas"
Top="80"
Left="100"
ZIndex="3">
<TextBox Name="BigText"
Background="White"
Canvas.ZIndex="6"
Canvas.Left="50"/>
<TextBox Canvas.Left="100"/>
<TextBox Canvas.Left="150"/>
<TextBox Canvas.Left="200"/>
</Canvas>
<Canvas Top="80"
Left="100"
ZIndex="1">
<TextBox Canvas.Left="100"/>
<TextBox Canvas.Left="150"/>
<TextBox Canvas.Left="200"/>
</Canvas>
<Canvas Top="80"
Left="100"
ZIndex="2">
<TextBox Canvas.Left="100"/>
<TextBox Canvas.Left="150"/>
<TextBox Canvas.Left="200"/>
</Canvas>
</ListBox>
我还将应用一些样式,使您的代码更短,更易于维护。在使用克莱门斯溶液之前,应该看起来有点像:
<ListBox>
<ListBox.Resources>
<Style TargetType="{x:Type Canvas}">
<Setter Property="Width" Value="500" />
<Setter Property="Background" Value="Blue" />
<Setter Property="Height" Value="40" />
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Width" Value="30" />
<Setter Property="Canvas.Top" Value="10" />
<Setter Property="Height" Value="20" />
</Style>
</ListBox.Resources>
<Canvas Name="firstCanvas"
Top="80"
Left="100"
ZIndex="3">
<TextBox Name="BigText"
Background="White"
Canvas.ZIndex="6"
Canvas.Left="50"/>
<TextBox Canvas.Left="100"/>
<TextBox Canvas.Left="150"/>
<TextBox Canvas.Left="200"/>
</Canvas>
<Canvas Top="80"
Left="100"
ZIndex="1">
<TextBox Canvas.Left="100"/>
<TextBox Canvas.Left="150"/>
<TextBox Canvas.Left="200"/>
</Canvas>
<Canvas Top="80"
Left="100"
ZIndex="2">
<TextBox Canvas.Left="100"/>
<TextBox Canvas.Left="150"/>
<TextBox Canvas.Left="200"/>
</Canvas>
</ListBox>