繁体   English   中英

从AvalonDock面板删除边框

[英]Removing borders from AvalonDock panel

这是我紧张的事情:

我的工作是重新设计应用程序样式,因此我没有编写它,我必须稍微更改代码(.cs或.xaml)。 问题出在avalonDock中……我无法从面板上移除边框或更改其颜色。

这是代码的一部分,其中定义了dockingManager部分(我们称其为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>

我可以通过设置样式来更改整个停靠面板(在一些示例之后):

<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#的初学者,所以我处于一种糟糕的境地。

我以相当愚蠢的方式重新设置了AvalonDock的样式。 我已经从http://avalondock.codeplex.com/SourceControl/list/changesets下载了源代码,更改了generic.xaml并重建了整个库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM