私は[silverlight] WizardContainerコントロールにいくつかのウィザードページをホストしています。ウィザードはホストフォームにうまく収まります。ページの内容が狭い場合は、コンテナを満たすために展開されません。そこでHorizontalContentAlignment
をStretch
に設定しました。これは機能します。XAML:親にデータグリッドを制限する方法
しかし、ウィザードページに多数の列を持つデータグリッドが含まれている場合は、幅が固定されていないため、自動スクロールせずにページを引き伸ばします。次のXAMLが350の幅を持つusercontrol上にある場合は、グリッドを350にし、独自のスクロールバーが必要です。 WizardContainerがページminwidth
より小さくされた場合、MainScroller
が有効になります。
<Grid x:Name="LayoutRoot" >
<ScrollViewer x:Name="MainScroller" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" >
<ContentControl Margin="4" x:Name="WizardContainer" HorizontalContentAlignment="Stretch">
<Grid Background="Red" x:Name="WizardPage" MinWidth="300">
<sdk:DataGrid HorizontalAlignment="Left" Height="120" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Width="150"/>
<sdk:DataGridTextColumn Width="150"/>
<sdk:DataGridTextColumn Width="150"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</Grid>
</ContentControl>
</ScrollViewer>
</Grid>
データグリッドの幅を固定すると、このXAMLのすべてが機能します。しかし、ユーザーがウィザードコンテナを含むフォームのサイズを変更すると、グリッドが拡大されます。
いいアドバイスが好きです - ありがとう。親フォームの状況をウィザードページの最小幅よりも小さくサイズ変更する状況を処理するScrollviewerがあります。しかし、私の大規模な私は、データグリッドが利用可能な幅に拡大したいと思います。私はフォームのactualwidthにelementnameのバインディングを試していますが、これはブレンドでうまくプレビューするようですが、ランタイムは更新されません。 – MattPil29