4

WPF アプリで Avalon を使用しています。Visual Studio と同様のウィンドウが必要です。左側にツール、中央にドキュメント、右側にプロパティが表示されます。私はこのコードでそれを行うことができました:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:ad="clr-namespace:AvalonDock;assembly=AvalonDock"
        xmlns:local="clr-namespace:WpfApplication1"
    Title="Window1" Height="600" Width="800">
    <Grid>
        <ad:DockingManager x:Name="dockManager" RenderTransformOrigin="0,0">
            <ad:ResizingPanel Orientation="Vertical">
                <ad:ResizingPanel Orientation="Horizontal" >
                    <ad:DockablePane>
                        <ad:DockableContent Title="Toolbox" Width="100">
                            <TextBox />
                        </ad:DockableContent>
                    </ad:DockablePane>
                    <ad:DocumentPane x:Name="documentsHost" OverridesDefaultStyle="True">
                        <ad:DocumentContent Title="File1.doc">
                            <RichTextBox/>
                        </ad:DocumentContent >
                        <ad:DocumentContent Title="File2.doc">
                            <RichTextBox/>
                        </ad:DocumentContent >
                    </ad:DocumentPane>
                    <ad:DockablePane>
                        <ad:DockableContent Title="Project Explorer">
                            <TextBox />
                        </ad:DockableContent>
                    </ad:DockablePane>
                </ad:ResizingPanel>
                <ad:DockablePane>
                    <ad:DockableContent Title="Output">
                        <TextBox />
                    </ad:DockableContent>
                </ad:DockablePane>
            </ad:ResizingPanel>
        </ad:DockingManager>
    </Grid>
</Window>

問題は、それらのいずれかのサイズを変更すると、すべてのサイズがその比率を維持するために変更されることです。これは私が望んでいるものではありません。中央のドキュメント ウィンドウのサイズが変更される VS のようにしたいのです。

私は数日間これと戦っているので、助けていただければ幸いです:(

4

1 に答える 1

7

そこから Avalon チュートリアルを開始し、ウィンドウの内容を XAML に置き換えたため、面白いです (ちなみに非常に似ています)。そして、あなたが説明した問題は起こりません。

次に、チュートリアルでは AvalonDock 1.1.1692 を使用しているのに対し、最新のリリースは 1.1.2691 であり、説明した動作をしていることに気付きました。

ソースコードを見ると、ResizeWidth と呼ばれる ResizingPanel によって定義された添付プロパティが示されています。これはデフォルトで 1* => 自動サイズ変更です。

最初の DockablePane を次のように変更すると:

<ad:DockablePane ad:ResizingPanel.ResizeWidth="100" >

必要な動作が得られます。

ハードコーディングされた幅を使用するのは決して素晴らしいことではないので、次のように変更しました

<ad:DockablePane ad:ResizingPanel.ResizeWidth="{Binding ElementName=dc, Path=Width}" >

内側の DockableContent dcに名前を付けた後

于 2010-03-01T16:35:37.250 に答える