あなたの別の質問では、AppBarSeparators
がPivotのDataTemplateで生成されています。
また、DataBindingを使用してこれを行うこともできます。また、実行時にウィンドウのサイズを変更できる場合は、INotifyPropertyChanged
インターフェイスでデータソースクラスを完成させる必要があります。例えば
ここ:
<Page.Resources>
<local:WidthConverter x:Key="cvt" />
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Pivot x:Name="docPivot" ItemsSource="{x:Bind pivotlist}" SizeChanged="docPivot_SizeChanged">
<Pivot.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.Row="0">
<AppBarButton Background="Red" Icon="Accept" Label="Accept" Width="{Binding WindowWidth, Converter={StaticResource cvt}}" />
</StackPanel>
<StackPanel Orientation="Horizontal"
Grid.Row="1">
</StackPanel>
</Grid>
</DataTemplate>
</Pivot.ItemTemplate>
</Pivot>
</Grid>
他のものは、あなたの最後の質問で私の答えと同じです。そして、ここでWidthConverter
は、このようなものです:
public class WidthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
double? width = (double?)value;
if (width <= 720)
return 64;
return 68;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
だから、スタイルを使用し、各項目ごとに個別に幅を処理するために必要だし、それははるかにそれを一緒に使用するすべての項目を変更するには、直接スタイルを変更することはできませんよりクリーンな方法? –
@WilliamJones、私はこれを管理するためにここにきれいな方法を考えることができませんでした。多分もっと簡単な方法があるかもしれませんが、とにかくコードの背後にあるべきです。 –