亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WPF C# GridSpittler 和顯示/隱藏按鈕

WPF C# GridSpittler 和顯示/隱藏按鈕

C#
千萬里不及你 2022-06-12 10:52:10
我有一個可拖動的 GridSplitter,并且兩列都會相應地調整大小。我有一個可以隱藏右列的按鈕,但我希望再次按下該按鈕以再次顯示右列并且仍然可以拖動。我曾嘗試使用 ToggleButton,但 GridSpiltter 已使用它固定且不可拖動。我怎樣才能有一個按鈕來顯示/隱藏列并且仍然可以由用戶調整?網格分割器:      <GridSplitter x:Name="rightSplitter"      Grid.Column="1"      Width="15"      HorizontalAlignment="Left"      VerticalAlignment="Stretch"      Background="Transparent"      ShowsPreview="True" />列定義:<Grid.ColumnDefinitions>    <ColumnDefinition Width="*" />    <ColumnDefinition Width="300" x:Name="rightColumn"/>  </Grid.ColumnDefinitions>  <Grid.RowDefinitions>    <RowDefinition Height="*" />    <RowDefinition Height="Auto" />  </Grid.RowDefinitions>按鈕:<Button Width="50" Height="50" HorizontalAlignment="Right" x:Name="Details_Toggle" Focusable="False">    <StackPanel>      <Image Source="controls/details.png" />    </StackPanel>按鈕單擊 C#:        private void deatilsShowHide(object sender, RoutedEventArgs e) {         rightColumn.Width = new GridLength(0);        rightSplitter.Visibility = System.Windows.Visibility.Collapsed;    }
查看完整描述

1 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

由于您正在折疊正確的項目,因此控件不會出現在面板中。而不是制作 Visibility Collapsed。單擊按鈕時,我們可以將寬度設置為 10,再次單擊時,我們可以將其恢復為原始寬度。同時,我們也可以拖動GridSplitter.


 private void deatilsShowHide(object sender, RoutedEventArgs e) 

 { 

     if(rightColumn.Width == new GridLength(10))

        {

            rightColumn.Width = new GridLength(300);

        }

        else

        {

            rightColumn.Width = new GridLength(10);

        }

}

Xaml:-


    <Grid>

    <Grid.ColumnDefinitions>

        <ColumnDefinition Width="*"  />

        <ColumnDefinition Width="5" />

        <ColumnDefinition Width="300" x:Name="rightColumn"/>

    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>

        <RowDefinition Height="*" />

        <RowDefinition Height="Auto" />

    </Grid.RowDefinitions>


    <StackPanel Grid.Column="0" Background="AliceBlue">

    <Button Width="50" Height="50" HorizontalAlignment="Right" x:Name="Details_Toggle" Focusable="False" Click="Details_Toggle_Click">

        <StackPanel>


        </StackPanel>

    </Button>

    </StackPanel>


    <GridSplitter x:Name="rightSplitter"


  Width="15" Grid.Column="1"

  HorizontalAlignment="Stretch"

  VerticalAlignment="Stretch"

  Background="Transparent"

  ShowsPreview="True" />


    <StackPanel Grid.Column="2"   VerticalAlignment="Center" HorizontalAlignment="Center" >

        <Button Content="test" Grid.Column="2" HorizontalAlignment="Left"  VerticalAlignment="Top" Width="75"/>


    </StackPanel>



</Grid>


查看完整回答
反對 回復 2022-06-12
  • 1 回答
  • 0 關注
  • 429 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號