0

MVVM Panorama Windows Phone 7 アプリケーションを構築しています。

パノラマ アイテムのレイアウトのある時点で、パノラマ ヘッダー ボックスの下余白が表示され、コンテンツが下に移動しすぎます。ContentPresenterで定義されたコントロールを保持するために生成されるの下マージンを設定する方法はありPanorama.HeaderTemplateますか?

Silverlight Spy のレイアウト リストは次のとおりです。 マージンの問題

スクリーン ショットが読めない場合は、次の大きなバージョンをご覧ください: http://bit.ly/rBvNp8

何かがヘッダー ボックス (おそらく、レイアウトを処理するコントロールのコード) に 26 ポイントの下部マージンを生成します。この値を制御するにはどうすればよいですか? 0に設定する必要があります。

4

1 に答える 1

1

のプロパティを制御するContentPresenterには、PanoramaItem の既定のテンプレートを (スタイル セッター内で) 再定義する必要があります。私の特定のケースでは、それはPanoramaItemのスタイルです。

<Style TargetType="controls:PanoramaItem">
            <Setter Property="CacheMode" Value="BitmapCache"/>
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="controls:PanoramaItem">
                        <Grid Background="{TemplateBinding Background}" Margin="12,0,0,0">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <ContentControl x:Name="header" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" FontSize="{StaticResource PhoneFontSizeExtraExtraLarge}" FontFamily="{StaticResource PhoneFontFamilySemiLight}" HorizontalAlignment="Left" Margin="10,-2,0,0">
                                <ContentControl.RenderTransform>
                                    <TranslateTransform x:Name="headerTransform"/>
                                </ContentControl.RenderTransform>
                            </ContentControl>
                            <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Grid.Row="1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Margin="10,-2​​,0,0" を設定するとうまくいきます。

于 2011-11-12T12:14:31.673 に答える