0

C#/XAML で Windows 8.1 アプリを設計しています。Windows Phone で見られる傾斜効果を再現しようとしています。ScaleTransform と PointerDownThemeAnimation の両方でこれを試しました。

ただし、Y 方向ではスケール効果が壊れているように見えます。UI 要素を縮小するだけでなく、ページ上で垂直方向に押し下げます。8.1 より前の Windows 8 アプリでスケールを使用しましたが、この問題はありませんでした。

見知らぬ人でさえ、デザインビューではうまく機能します。RenderTransformOrigin を「0.5, 0.5」に設定してみました。テキスト ブロックのスケールを 0.5 に設定するとどうなるかの例を次に示します。 ここに画像の説明を入力

問題は何だと思いますか、どうすれば解決できますか? ありがとう

編集: XAML のほとんどは次のとおりです。

<Grid Height="{Binding PalettePanelHeight}">
                <TextBlock Text="Palettes" FontSize="70" Margin="24,22,0,0"/>
                <StackPanel Orientation="Horizontal" Name="typePanel" HorizontalAlignment="Right" Margin="0,52,24,0">
                    <StackPanel.Resources>
                        <Style TargetType="TextBlock">
                            <Setter Property="Margin" Value="0,0,24,0"/>
                            <Setter Property="FontWeight" Value="Light"/>
                            <Setter Property="FontSize" Value="28"/>
                        </Style>
                    </StackPanel.Resources>
                    <TextBlock Text="Newest" Opacity="1" PointerPressed="on_PointerDown" PointerExited="on_PointerUp" PointerReleased="on_PointerUp" Tapped="newest_Tapped" RenderTransformOrigin="0.5,0.5">
                        <TextBlock.RenderTransform>
                            <ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                    <TextBlock Text="Most popular" Opacity="0.45" PointerPressed="on_PointerDown" PointerExited="on_PointerUp" PointerReleased="on_PointerUp" Tapped="popular_Tapped" RenderTransformOrigin="0.5,0.5">
                        <TextBlock.RenderTransform>
                            <ScaleTransform/>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                    <TextBlock Text="Highest rated" Opacity="0.45" PointerPressed="on_PointerDown" PointerExited="on_PointerUp" PointerReleased="on_PointerUp" Tapped="rating_Tapped" RenderTransformOrigin="0.5,0.5">
                        <TextBlock.RenderTransform>
                            <ScaleTransform/>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </StackPanel>

スケール 0.5 の 'Newest' テキスト ブロックがサンプル イメージに表示されます。「PalettePanelHeight」は、コード内の Window.Current.Bounds.Height にすぎません。

4

1 に答える 1

0

を保持したい場合はScaleTransform、VerticalAlignment を使用して、テキストが上になるようにします。

<TextBlock VerticalAlignment="Top" Text="Newest" Opacity="1" RenderTransformOrigin="0.5,0.5">
                    <TextBlock.RenderTransform>
                        <ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
                    </TextBlock.RenderTransform>
                </TextBlock>

他のタイトルと同じように維持したい場合は、scaleTrandform を削除して作成します。

 <TextBlock VerticalAlignment="Top" Text="Newest" Opacity="1" RenderTransformOrigin="0.5,0.5">
</TextBlock>
于 2015-03-25T13:46:35.880 に答える