制作一个可见/不可见的面板,调整主窗口的大小

时间:2012-09-05 13:47:30

标签: wpf xaml resize panel visibility

我希望获得像普通媒体播放器一样的效果,其中有一个eq或tracklist面板可以通过点击显示或更少。 主窗口应该根据显示的内容自动调整大小。 我想知道我是否必须谨慎地手动指定尺寸或者解决方案更清楚。

<Window x:Class="WpfApplicationAnimation.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="Auto" Width="Auto" SizeToContent="WidthAndHeight">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Label Margin="5" Grid.Column="0" Grid.Row="0">Value 1:</Label>
    <Label Margin="5" Grid.Column="0" Grid.Row="1">Value 2:</Label>
    <Label Margin="5" Grid.Column="0" Grid.Row="2">Value 3:</Label>
    <Button Margin="5" Click="Button_Click_1" Grid.Column="0" Grid.Row="3" Visibility="Hidden">Hello</Button>
    <TextBox Name="txt1" Margin="5" Grid.Column="1" Grid.Row="0" MinWidth="100" />
    <TextBox Margin="5" Grid.Column="1" Grid.Row="1" MinWidth="100" />
    <TextBox Margin="5" Grid.Column="1" Grid.Row="2" MinWidth="100" />        
</Grid>

我尝试设置SizeToContent =“WidthAndHeight”,但即使可见,按钮的内容也占用了所需的空间。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Expander,但效果不一样。问题将是Window Transparency(所以你可以摆脱它,就像Winamp那样;但是你进入Memory Leak)。但是,扩展器是我所知道的唯一能够自动实现的控件。当然,您可以随时手动安排和调整大小,但这就是您要避免的。