C#WPF堆叠面板布局
我已经在TreeView项目中创建了stackpanel。我试图让我的图片旁边的复选框和文本旁边的图片框,但我不知道如何做到这一点。目前这种情况正在发生: 这是我的代码:C#WPF堆叠面板布局,c#,wpf,xaml,C#,Wpf,Xaml,我已经在TreeView项目中创建了stackpanel。我试图让我的图片旁边的复选框和文本旁边的图片框,但我不知道如何做到这一点。目前这种情况正在发生: 这是我的代码: ComboBoxItem tempComboItem = comboBox1.SelectedItem as ComboBoxItem; CheckBox cbox = new CheckBox(); StackPanel panel = new StackPanel();
ComboBoxItem tempComboItem = comboBox1.SelectedItem as ComboBoxItem;
CheckBox cbox = new CheckBox();
StackPanel panel = new StackPanel();
panel.Width = 260;
Label labelTitle = new Label();
Label labelStatus = new Label();
Image newImage = new Image();
newImage.Source = new BitmapImage(new Uri(imageTextBox1.Text));
newImage.Width = 85;
newImage.Height = 65;
panel.Children.Add(newImage);
labelTitle.Content = itemTextBox1.Text;
panel.Children.Add(labelTitle);
labelStatus.Content = "Beschikbaar";
panel.Children.Add(labelStatus);
labelStatus.Foreground = Brushes.Lime;
cbox.Content = panel;
TreeViewItem newChild = new TreeViewItem();
newChild.Header = cbox;
有人能帮帮我吗
我希望复选框、图像和文本是水平的。我可以使用:面板。方向。
但是右边的两个文本标签,我希望它们垂直,一个在另一个下面
我该怎么做?你的意思是你想要
水平方向吗
如果是,请尝试以下操作:
panel.Orientation = Orientation.Horizontal;
尽管如此,我担心您实际上可能需要更多的干预,而不仅仅是设置此属性;让我看看。你是说你想要水平方向吗
如果是,请尝试以下操作:
panel.Orientation = Orientation.Horizontal;
尽管如此,我担心您实际上可能需要更多的干预,而不仅仅是设置此属性;让我们看看。我将制作以下XAML:(如果您需要帮助将其转换为代码,请告诉我)
我将制作以下XAML:(如果您需要帮助将其转换为代码,请告诉我)
我的文本一
贝希克巴
这是一种实现效果的简单方法。从这里,您可以轻松地根据自己的喜好调整垂直对齐。您也可以在代码中轻松实现这一点,但我建议您在基于布局的任务中使用XAML。
我的文本一
贝希克巴
这是一种实现效果的简单方法。从这里,您可以轻松地根据自己的喜好调整垂直对齐。您也可以在代码中轻松做到这一点,但我建议您在基于布局的任务中坚持使用XAML。不,并非所有内容都需要是水平的,两个文本标签必须是水平的vertical@anonyg:好的,那么你需要在你的堆栈面板
中有更多的元素来适应这一点,例如网格
;并以这种方式更精细地布局元素。不,并非所有元素都需要水平,2个文本标签必须是水平的vertical@anonyg:好的,那么你需要在你的堆栈面板
中有更多的元素来适应这一点,例如网格
;并以这种方式更精细地布置元素。你为什么要这样做?使用ItemTemplate
不是更容易吗?的确如此。使用将我的答案中的xaml放入DataTemplate并将其分配给Treeview的ItemTemplate属性(不要忘记使用{Binding}
而不是硬编码值)为什么这样做?使用ItemTemplate
不是更容易吗?的确如此。使用将我的答案中的xaml放入DataTemplate并将其分配给Treeview的ItemTemplate属性(不要忘记使用{Binding}
而不是硬编码值)+1布局属于xaml。这毕竟是WPF,而不是winforms。+1布局属于xaml。这毕竟是WPF,而不是winforms。
<DockPanel>
<CheckBox DockPanel.Dock="Left"/>
<StackPanel DockPanel.Dock="Right">
<TextBlock>My Text One</TextBlock>
<TextBlock>beschikbaar</TextBlock>
</StackPanel>
<Image DockPanel.Dock="Left" Source="myImage.png" />
</DockPanel>