【问题标题】:Adjust size after dynamically removing a controle动态移除控件后调整大小
【发布时间】:2013-01-09 19:58:28
【问题描述】:

我有一个自定义图形用户控件,我已将它放在堆栈面板中。堆栈面板中最多可以随时显示 4 个图形控件。我有复选框来控制图表的可见性。

我遇到的问题是,当我取消选中一个复选框时,堆栈面板中的剩余图形不会调整大小以弥补额外的空间。我正在寻找的是当所有图表都可见时,它们适合屏幕而不滚动,但如果只有一个图表可见,我希望调整其大小以占用所有空间。

有人有什么想法吗?

这是我目前所拥有的:

<UniformGrid Grid.Row="2" Name="uniformGrid1" >
                <UniformGrid.Resources>
                    <Utilities:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
                </UniformGrid.Resources>

            <StackPanel Grid.Row="1" Height="700"  Name="graphControls" Orientation="Vertical">
                <!--Cross Correlation Graph-->
                <View:Graph Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="CrossCorrelationGraph" x:FieldModifier="public"                                                
                        Visibility="{Binding Path=IsChecked, ElementName=crossCorrelationViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                        GraphMetadata="{Binding Path=Processor.CrossCorrelation.CrossCorrelationGraphData}"
                        StartPointAlignment="CenterVertical"
                        GraphTitle="Cross Correlation"
                        IsDetailed="True"/>

                <!--Power Spectrum Graph-->
                <View:Graph Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="PowerSpectrumGraph" x:FieldModifier="public"
                        Visibility="{Binding Path=IsChecked, ElementName=powerSpectrumViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                        GraphMetadata="{Binding Path=Processor.CrossCorrelation.PowerSpectrumGraphData}"
                        StartPointAlignment="Left"
                        GraphTitle="Power Spectrum"
                        IsDetailed="True"/>

            <!--Phase Spectrum-->
                <View:Graph  Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="PhaseSpectrum" x:FieldModifier="public"
                        Visibility="{Binding Path=IsChecked, ElementName=phaseSpectrumViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                        GraphMetadata="{Binding Path=Processor.CrossCorrelation.PhaseSpectrumGraphData}"
                        StartPointAlignment="CenterHorizontal"
                        GraphTitle="Cross Phase Spectrum"
                        IsDetailed="True"/>

                <!--Amplitude Spectrum-->
                <View:Graph  Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="AmplitudeSpectrumGraph" x:FieldModifier="public"
                        Visibility="{Binding Path=IsChecked, ElementName=amplitudeSpectrumViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                        StartPointAlignment="Left"
                        GraphTitle="Cross Amplitude Spectrum"
                        IsDetailed="True"/>
            </StackPanel>
        </UniformGrid>

【问题讨论】:

    标签: c# .net wpf xaml wpf-controls


    【解决方案1】:

    玩了一段时间后,我找到了解决方案。我会在这里发布,以便其他人受益。

    首先,我放弃了堆栈面板,只使用了 UniformGrid。我将 UniformGrid 上的 columns 属性设置为 1,因此所有内容都将一个在另一个之上。现在一切正常。

    <UniformGrid  Grid.Row="2"  Height="Auto"  Columns="1">                
                        <UniformGrid.Resources>
                            <Utilities:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
                        </UniformGrid.Resources>
                        <!--Cross Correlation Graph-->
                <View:Graph Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="CrossCorrelationGraph" x:FieldModifier="public"                                                
                            Visibility="{Binding Path=IsChecked, ElementName=crossCorrelationViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                            GraphMetadata="{Binding Path=Processor.CrossCorrelation.CrossCorrelationGraphData}"
                            StartPointAlignment="CenterVertical"
                            GraphTitle="Cross Correlation"
                            IsDetailed="True"/>
    
                        <!--Power Spectrum Graph-->
                <View:Graph Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="PowerSpectrumGraph" x:FieldModifier="public"
                            Visibility="{Binding Path=IsChecked, ElementName=powerSpectrumViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                            GraphMetadata="{Binding Path=Processor.CrossCorrelation.PowerSpectrumGraphData}"
                            StartPointAlignment="Left"
                            GraphTitle="Power Spectrum"
                            IsDetailed="True"/>
    
                        <!--Phase Spectrum-->
                <View:Graph  Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="PhaseSpectrum" x:FieldModifier="public"
                            Visibility="{Binding Path=IsChecked, ElementName=phaseSpectrumViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                            GraphMetadata="{Binding Path=Processor.CrossCorrelation.PhaseSpectrumGraphData}"
                            StartPointAlignment="CenterHorizontal"
                            GraphTitle="Cross Phase Spectrum"
                            IsDetailed="True"/>
    
                        <!--Amplitude Spectrum-->
                <View:Graph  Width="Auto" Height="Auto" MinHeight="175" Margin="5" x:Name="AmplitudeSpectrumGraph" x:FieldModifier="public"
                            Visibility="{Binding Path=IsChecked, ElementName=amplitudeSpectrumViewCheck, Converter={StaticResource BooleanToVisibilityConverter}}"
                            StartPointAlignment="Left"
                            GraphTitle="Cross Amplitude Spectrum"
                            IsDetailed="True"/>
                    </UniformGrid>
    

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多