0

ここに私の神経質になっているものがあります:

私の仕事はアプリケーションのスタイルを変更することなので、私はそれを書きませんでした。コード (.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>

次のようにスタイルを設定することで、dockingPanes全体を変更できます(いくつかの例の後):

<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# の初心者なので、ちょっと困った状況です。

4

1 に答える 1

1

AvalonDock のスタイルをかなり馬鹿げた方法で変更しました。http://avalondock.codeplex.com/SourceControl/list/changesetsからソース コードをダウンロードし、generic.xaml を変更して、ライブラリ全体を再構築しました。

于 2012-09-19T10:56:41.693 に答える