いい案!私はあなたのソリューションを正確には使用しませんが、あなたのアイデアに触発されました。
これが私がしたことです:
1. StackPanel をコンテナーとして作成し、上余白を次のように負の値に設定します。Margin="0,-35,0,0"
2.いくつかの TextBlocks を追加して Pviot ヘッダーを偽装し、ヘッダーとバインドする予定だったデータ バインディングを設定します。
3. TextBlocksWidth = "Auto"
を設定し、右マージンをいくつか追加して、混雑しすぎないようにします
注: 最初の TextBlock が現在の PivotItem を表している場合、他のものは非アクティブ化されている他のものを表します。
4.アクティブ化されていない PivotItems の TextBlocks については、アクティブ化されたForeground="#FF727272"
ものと区別するように を設定します。Tap="GoToPivot2_Tap"
また、単純なコード ビハインドなどを使用して、イベント ハンドラーも追加します。PivotRoot.SelectedItem = Pivot2;
<controls:Pivot x:Name="PivotRoot">
<controls:PivotItem x:Name="Pivot1">
<StackPanel Margin="0,-35,0,0" Orientation="Horizontal">
<TextBlock Text="{Binding Header1}" Width="Auto" Margin="0,0,25,0" FontSize="30"/>
<TextBlock Text="{Binding Header2}" Tap="GoToPivot2_Tap" Width="Auto" Margin="0,0,25,0" Foreground="#FF727272" FontSize="30"/>
<TextBlock Text="{Binding Header3}" Tap="GoToPivot3_Tap" Width="Auto" Margin="0,0,25,0" Foreground="#FF727272" FontSize="30"/>
</StackPanel>
</controls:PivotItem>
<controls:PivotItem x:Name="Pivot2">
<StackPanel Margin="0,-35,0,0" Orientation="Horizontal">
<TextBlock Text="{Binding Header2}" Width="Auto" Margin="0,0,25,0" FontSize="30"/>
<TextBlock Text="{Binding Header3}" Tap="GoToPivot3_Tap" Width="Auto" Margin="0,0,25,0" Foreground="#FF727272" FontSize="30"/>
<TextBlock Text="{Binding Header1}" Tap="GoToPivot1_Tap" Width="Auto" Margin="0,0,25,0" Foreground="#FF727272" FontSize="30"/>
</StackPanel>
</controls:PivotItem>
<controls:PivotItem x:Name="Pivot3">
<StackPanel Margin="0,-35,0,0" Orientation="Horizontal">
<TextBlock Text="{Binding Header3}" Width="Auto" Margin="0,0,25,0" FontSize="30"/>
<TextBlock Text="{Binding Header1}" Tap="GoToPivot1_Tap" Width="Auto" Margin="0,0,25,0" Foreground="#FF727272" FontSize="30"/>
<TextBlock Text="{Binding Header2}" Tap="GoToPivot2_Tap" Width="Auto" Margin="0,0,25,0" Foreground="#FF727272" FontSize="30"/>
</StackPanel>
</controls:PivotItem>
</controls:Pivot>
それでおしまい。
イベントはあなたのものよりエレガントではないかもしれませんが、うまくいきます。