WPFスプリッタの可視性


    
        
        
        
    
    
    
    

上のxamlでは、私のViewModelのいくつかの条件に基づいて、最初のコンテンツコントロールとスプリッタの可視性を設定しています。しかし、実行中にスプリッタのサイズを変更した場合、最後のコンテンツコントロールの前に空白が表示されます。私は完全な不動産を占有するコンテンツコントロールが必要です。最初のコンテンツコントロールとスプリッタを折りたたんで設定しますか?

ヘルプをよろしくお願いいたします。

1

3 答え

ColumnDefinitions GridSplitter が壊れてしまった場合、最初の列を取得しても Auto ではなく、具体的なピクセル値になるというのが問題です。これを示す例を以下に示します。


    
        
        
        
    
    
    
    

したがって、再び折りたたみ可能にしたい場合は、 Auto に戻す必要があります。

2
追加された
私のために働く...
追加された 著者 H.B.,
ColumnDefinitionの幅をAutoに設定しても問題は解決しません。
追加された 著者 Arihant,
ColumnDefinition widthの双方向バインディングを設定することで修正されました。
追加された 著者 Arihant,

@Arihant、

1] GridSplitter.Horizo​​ntalAlignment Stretch として試してください。

2]あなたの GridSplitter.Background は分かりやすいので、スプリッタを表示できますか?

3] Visibility = "{Binding NavigationPageVisibility}" のバインディングは機能していますか?このバインディングのVisual Studioの出力ウィンドウにバインディングエラーが表示されますか?

Visibility 型で Visibility.Visible NavigationPageVisibility はありますか?

多くの開発者は、そのような NavigationPageVisibility プロパティをブール値として宣言しています。それはバインディングに失敗します。

4]あなたの Margin = "1,6,1,6" を削除してください。可視領域からスプリッタを外すことがあります。

5] Grid.Row = "1" を持つべきではありません。スプリッタは常に Row = "0" にあり、できるだけ Grid.RowSpan を最大限持たなければなりません。私は99として私を設定します。

1
追加された
NavigationPageVisibilityはVisibilityを正しく設定します...ここで言及した他のステップを試しましたが運はありません。
追加された 著者 Arihant,

Wild guess: you set the visibility to Visibility.Hidden

これはコントロールを隠すだけですが、スペースを保持します。

可視性を Visibility.Collapsed に設定すると、問題が解決するはずです。

0
追加された
いいえ、私は可視性を可視性に設定していません。最初はうまく動作しますが、スプリッタを使用して列のサイズを変更した後、再びウィンドウを開くと、最初の列に空白が表示されます。
追加された 著者 Arihant,