披露:
我是WPF的新手,大约一个星期。
问题:
我正在尝试修改GridSplitter的行为,使其捕捉到有趣的位置,显示带有当前位置的标签(在分割器后面),从所述标签驱动上下文菜单等。我有在一个简单的测试应用程序中,在一个gridsplitter上成功地完成了所有这些操作,并结合了XAML和一些代码。
值得注意的是,由于GridSplitter无法托管内容,因此我将标签放在与分割器相同的网格单元格中,以便它们一起移动。
到目前为止一直很好......
现在我希望复制我的工作,以便我可以在许多地方使用我的新GridSplitter功能代替原生控件,而且,我希望有两个变体,水平和垂直。听起来像继承...创建一个派生自GridSplitter的子类并添加其他功能。但是我所做的所有阅读都让我想知道如何解决这个问题,如果没有重新开始并且从头开始构建我自己的GridSplitter,这是否可行?
欢迎提示。在那之前,我将恢复胎位。
由于
答案 0 :(得分:1)
此答案可能有助于您解决问题:How to make GridSplitter to "snap" into another element?
通过订阅GridSplitterDragCompleted
事件,您可以插入逻辑以捕捉到“有趣”的位置。
答案 1 :(得分:0)
你应该
答案 2 :(得分:0)
这回答了如何在分割器中放置内容
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="40" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="Row 0" Background="Orange"/>
<!--<GridSplitter Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="20" Background="Purple"/>-->
<GridSplitter Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch">
<GridSplitter.Template>
<ControlTemplate TargetType="{x:Type GridSplitter}">
<TextBlock Text="TextBlock splitter" Background="Yellow" FontWeight="Bold"/>
</ControlTemplate>
</GridSplitter.Template>
</GridSplitter>
<Button Grid.Row="2" Content="Row 0" Background="Salmon"/>
</Grid>