c# - 分割WPF窗口

标签 c# .net wpf xaml window

我想将我的窗口 (wpf) 分为三列:左列必须是 DockPanel (我认为 StackPanel 不适用于 Canvas >),右列应该是另一个包含 listboxDockPanel,中间我需要有一个 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/

相关文章:

c# - 此时无法启动异步操作调用WebService出现异常?

wpf - 如何使用 WPF 实现无边框窗口?

c# - Windows 窗体 C# 面板不应有白色背景,并且面板应仅为图像

c# - 比较.net中的日期

c# - 如何在至少打开一个模式窗口时最小化 winforms 应用程序

wpf - MVVM 多命令处理程序

wpf - 我们如何为 WrapPanel 设置 Wrap-point?

c# - .NET WebClient.DownloadData 获取文件类型?

c# - 如何获取 "Everyone"的 IdentityReference 以在本地化系统上创建 MutexAccessRule?

C#:将字段定义为私有(private)但可在泛型中修改