1

これは少しばかげた質問かもしれませんが、他に何を試すべきかわからないので、助けを求めたかったのです。私の問題は、Silverlight でコントロールを固定することです。

コントロール内にあるグリッド (C1FlexGrid) があります。コントロールはページで使用され、ブラウザ ウィンドウのサイズによってグリッド サイズを決定したいだけです。最小サイズを設定したいのですが、ユーザーがブラウザー ウィンドウを拡大すると、垂直方向と水平方向の両方に拡張できるようにします。WinForms (私はこれに慣れています) では、これは簡単です。

ただし、Silverlight では頭痛の種です。私が望むように動作させることは可能ですか?

コントロールの幅と高さを自動に設定し、デザインの幅と高さを指定しました。次に、ユーザー コントロールがページに配置され、コントロールとページの幅/高さの両方が自動に設定されます。

グリッドが数百行のデータをロードすると、200 行あるという事実に基づいてグリッドのサイズが自動的に調整されます。つまり、非常に長くなります。

編集

簡単な例の XAML を次に示します。

<navigation:Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
    xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml" x:Class="Optimize.Client.Presentation.AboutView"
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
    Title="About" 
    x:Name="AboutPage"
    Style="{StaticResource PageStyle}">

    <Grid x:Name="LayoutRoot" Background="White" MinWidth="300" MinHeight="300">
        <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
                <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <c1:C1FlexGrid Margin="10" BorderBrush="Red" BorderThickness="1" Width="Auto" Height="Auto" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
            <c1:C1FlexGrid.Columns>
                <c1:Column Header="User Group" Width="*" /> 
            </c1:C1FlexGrid.Columns>
        </c1:C1FlexGrid>
    </Grid>

</navigation:Page>

ここで必要なのは、ページ上のグリッドだけです。ページの最小サイズは 300x300 です。ブラウザウィンドウが拡大すると、ページも拡大し、グリッドも拡大して、グリッドのすべての境界線が上/下/左/右から 10 になるようにします。レイアウト グリッドの幅/高さに * を指定しようとしましたが、まだ機能しません。

ありがとう

4

1 に答える 1

0

Autosizing は「コンテンツに合わせてサイズ変更してください」という意味です。これにより、親コントロールまたはブラウザーのサイズが制限されることはありません。

Star基本的に「固定または自動列/行を差し引いた後、スター サイズの比率に基づいて、スター サイズの列/行に残りのスペースを分配してください」という意味の (*) サイジングが必要です。

また、コンテナーで Horizo​​ntalAlignment="Stretch" および VerticalAlignment="Stretch" を指定して、スター サイズの列/行に分散されるスペースの量を決定できるようにする必要があります (そうしないと、それ自体で折りたたまれます)。

XAML を投稿していただければ、より具体的に説明できます。

于 2012-07-04T08:10:11.727 に答える