我想将我的窗口 (wpf) 分为三列:左列必须是 DockPanel
(我认为 StackPanel
不适用于 Canvas
>),右列应该是另一个包含 listbox
的 DockPanel
,中间我需要有一个 Canvas
。
这就是我所做的,但我遇到了左列的问题,因为它不可扩展。我需要左列作为自定义对象的持有者,以便用户可以将它们拖放到 Canvas 上。请指教。
<DockPanel LastChildFill="True" Background="LightGray" Margin="5">
<Expander Header="Controls" Background="Gray" Margin="2"
Content="{StaticResource FC}" DockPanel.Dock="Top"
IsExpanded="True" Width="200" />
</DockPanel>
<GridSplitter Focusable="False" Width="2" Background="LightGray"
VerticalAlignment="Stretch" HorizontalAlignment="Right"/>
<lib:MyCanvas x:Name="myCanvas" FlowDirection="LeftToRight"
Background="White" AllowDrop="True"
Mouse.MouseMove="MyCanvas _MouseMove">
</lib:MyCanvas >
另外,右侧应该使用什么控件才能容纳列表框?
最佳答案
查看您提出的各种问题,看起来您正在考虑构建一个类似于 Visual Studio 的应用程序。我建议您查看 CodeProject 上与您的要求类似的以下精彩系列文章,即拥有工具箱、各种工具箱项目、设计器、在设计器上拖放项目等。-
WPF 图表设计器 - Part 4 , Part 3 , Part 2 , Part 1
您只需在右侧添加一个 PropertyGrid 并将设计器中选定的 ToolBox 项与它绑定(bind)即可。
关于c# - 分割WPF窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952636/