这是什么让我神经紧张:
我的工作是重新申请,所以我没有写它,我必须稍微更改代码(.cs或.xaml)。问题在于avalonDock ......我无法从面板上移除边框,或改变其颜色。
这是代码的一部分,其中定义了dockManager部件(让我们称之为MainView.xaml)
<ad:DockingManager Name="dockingManager" >
<ad:ResizingPanel Orientation="Horizontal">
<ad:DockablePane ad:ResizingPanel.ResizeWidth="50" Name="navigatorHostCtrlPane" >
<ad:DockableContent Name="navigatorHostCtrl" Title="{StaticResource Navi}" IsCloseable="False" Background="Transparent"/>
</ad:DockablePane>
<ad:ResizingPanel Orientation="Vertical" >
<ad:DockablePane Name="mainPane" >
<ad:DockableContent x:Name="mainHostCtrl" Title="{StaticResource Sc}" AllowDrop="False" IsCloseable="False" ClipToBounds="False" Background="White"/>
</ad:DockablePane>
<ad:DockablePane ad:ResizingPanel.ResizeHeight="250" >
<ad:DockableContent Name="dataHostCtrl" Title="{StaticResource Dt}" IsCloseable="False" Background="White"/>
</ad:DockablePane>
</ad:ResizingPanel>
</ad:ResizingPanel>
</ad:DockingManager>
这是在.cs文件(MainView.xaml.cs)中设置部件的地方,如下所示:
BindRegionToGui(regionManager, RegionNames.NavigatorRegion, navigatorHostCtrl);
和BindRegionToGui():
private static void BindRegionToGui(IRegionManager regionManager, string regionName, UIElement content)
{
var reg = (AvalonDockRegion)regionManager.Regions[regionName];
reg.Bind(content);
}
我不能通过设置BorderThickness =“1”或样式定义来改变外边框的样式,即使在元素中也是如此:
<Style x:Key="{x:Type ad:DockablePane}" TargetType="{x:Type ad:DockablePane}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property=“BorderThickness“ Value=“0“/>
</Style>
我可以通过设置这样的样式来改变整个dockPanes(在一些例子之后):
<Style TargetType="{x:Type ad:DockablePane}">
…
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ad:DockablePane}">
<Border
Background=….
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但有了这个 - 内容就不会出现了。我假设,content.template会覆盖它,但我不知道如何将应用程序定义的面板放入其中。
很抱歉,如果这是一个愚蠢的问题,但我是xaml / c#的初学者,所以我的情况很糟糕。
答案 0 :(得分:1)
我以非常愚蠢的方式重新调整了AvalonDock。我已经从http://avalondock.codeplex.com/SourceControl/list/changesets下载了源代码,更改了generic.xaml并重建了整个库。