Контроль полей автоматически сгенерированного предъявителя контента в Windows Phone Panorama Control - PullRequest
0 голосов
/ 12 ноября 2011

Я создаю приложение MVVM Panorama для Windows Phone 7.

В какой-то момент компоновки Panorama Item я получаю нижнее поле окна заголовка панорамы, которое перемещает мой контент слишком далеко вниз.Есть ли способ, которым я могу установить нижнее поле для ContentPresenter, которое создается для хранения элементов управления, определенных в Panorama.HeaderTemplate?

Вот мой список макетов в Silverlight Spy: margin problem

В случае, если снимок экрана не читается, вот большая версия: http://bit.ly/rBvNp8

Что-то генерирует нижнее поле в 26 пунктов для поля заголовка (возможно, код элемента управления, который обрабатывает макет)).Как я могу контролировать это значение?Мне нужно, чтобы он был установлен на 0.

1 Ответ

1 голос
/ 12 ноября 2011

Для управления свойствами 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" делает свое дело.

...