3

SliderWP7およびWP8アプリにコンポーネントがあります。WP7では、Sliderそれに応じて移動しますSchedulerが、WP8では、単に移動しません。

Sliderスタイル設定されており、WP8にいくつかの変更があることを私は知っています。まず第一に、それらの変更は正確には何であり、コードで何を変更しますか?Microsoftからのドキュメントは貧弱です。マイクロソフトからの変更以外に、これが何であるかを誰かが知っていますか?

また、デフォルト値を何かに設定しても、サムは常に開始位置にあります。私も動かせません。

私にとって、これはさまざまな異なるスタイルに適用されます。たとえば、Mifrosofts独自のスライダースタイルとテンプレートからです。

これにはテンプレートがあります:

        <Slider x:Name="Slider" IsHitTestVisible="true" Value="{Binding SliderValue, Mode=TwoWay}" Maximum="100" VerticalAlignment="Center" Margin="0,24,0,0" Template="{StaticResource SliderControlTemplate1}" />

テンプレートは次のとおりです。

        <ControlTemplate x:Key="SliderControlTemplate1" TargetType="Slider">
        <Grid Background="Transparent">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal"/>
                    <VisualState x:Name="MouseOver"/>
                    <VisualState x:Name="Disabled">
                        <Storyboard>
                            <DoubleAnimation Duration="0" To="0.1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="HorizontalTrack"/>
                            <DoubleAnimation Duration="0" To="0.1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="VerticalTrack"/>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="HorizontalFill">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                            </ObjectAnimationUsingKeyFrames>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="VerticalFill">
                                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <Grid x:Name="HorizontalTemplate" Margin="{StaticResource PhoneHorizontalMargin}">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Rectangle x:Name="HorizontalFill" Fill="{TemplateBinding Foreground}" Height="12" IsHitTestVisible="False" Margin="0"/>
                <Rectangle x:Name="HorizontalTrack" Grid.Column="2" Fill="{TemplateBinding Background}" Height="12" IsHitTestVisible="False" Margin="0" Opacity="0.2"/>
                <RepeatButton x:Name="HorizontalTrackLargeChangeDecreaseRepeatButton" IsTabStop="False" Template="{StaticResource PhoneSimpleRepeatButton}"/>
                <RepeatButton x:Name="HorizontalTrackLargeChangeIncreaseRepeatButton" Grid.Column="2" IsTabStop="False" Template="{StaticResource PhoneSimpleRepeatButton}"/>
                <Thumb x:Name="HorizontalCenterElement" Grid.Column="1" Height="12" Margin="0" Width="12">
                    <Thumb.Template>
                        <ControlTemplate>
                            <Grid ManipulationDelta="ProgressBarManipulationDelta" Width="46" Height="46" VerticalAlignment="Center" HorizontalAlignment="Center">
                                <Image Source="/slider.png"/>
                            </Grid>
                        </ControlTemplate>
                    </Thumb.Template>
                </Thumb>
            </Grid>

        </Grid>
    </ControlTemplate>

そして、私は対応するスタイルを試しました。何が問題なのですか?または使用する必要がありますStyleTemplate?どちらも私にとって今は平等に行動します。

4

1 に答える 1

2

同じ問題がありました。WP8 の前に、元のスタイルのコピーを編集し、目的に合わせて変更していました。その後、プロジェクトを WP8 にアップグレードすると、WP7 からこの変更されたスタイルが原因で、スタイルが変更されたため、スライダーが更新されなくなりました。スタイルを削除すると修正されました。それでも変更が必要な場合は、WP8 のスライダー コンポーネントから元のスタイルを取得する必要があります。

于 2013-02-27T13:07:51.590 に答える