Loopingselector не отображается после определения стиля?
Я хочу изменить цвет границы LoopingSelector
поэтому я копирую определение стиля LoopingSelectorItem
(как указано ниже) из Generic.xaml в мой PhoneApplicationPage.Resources
, А потом поменяй Fill
из Grid
в Red
,
Теперь проблема в том, что, когда я открываю это приложение в симуляторе, LoopingSelector
не появляется сразу. Но как только я касаюсь области экрана, где должен находиться селектор, он появляется, и цвет рамки - это то, что я хочу. Это похоже на проблему инициализации, но я не знаю, что делать. Я пытаюсь скопировать это определение стиля без каких-либо изменений из исходного Generic.xaml, проблема все еще существует. Кто-нибудь может помочь мне с этой проблемой?
<phone:PhoneApplicationPage.Resources>
<Style TargetType="primitives:LoopingSelectorItem">
<Setter Property="Foreground" Value="{StaticResource PhoneSubtleBrush}"/>
<Setter Property="Padding" Value="6"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border x:Name="root" CacheMode="BitmapCache" Background="Transparent" Padding="{TemplateBinding Padding}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition From="Normal" To="Expanded" GeneratedDuration="0:0:0.33" />
<VisualTransition From="Expanded" To="Normal" GeneratedDuration="0:0:0.33" />
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<VisualState x:Name="Expanded">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Opacity" To="0.8" Duration="0"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Selected">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="background" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="border" Storyboard.TargetProperty="BorderBrush" Duration="0">
<ObjectAnimationUsingKeyFrames.KeyFrames>
<DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
</ObjectAnimationUsingKeyFrames.KeyFrames>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentControl" Storyboard.TargetProperty="Foreground" Duration="0">
<ObjectAnimationUsingKeyFrames.KeyFrames>
<DiscreteObjectKeyFrame KeyTime="0" Value="White" />
</ObjectAnimationUsingKeyFrames.KeyFrames>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border.RenderTransform>
<TranslateTransform x:Name="Transform"/>
</Border.RenderTransform>
<Grid>
<Rectangle x:Name="background" Margin="0" Opacity="0" Fill="Red" CacheMode="BitmapCache"/>
<Border x:Name="border" Opacity="0" BorderThickness="3" BorderBrush="{StaticResource PhoneSubtleBrush}">
<ContentControl x:Name="contentControl" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch">
<ContentPresenter x:Name="contentPresenter" CacheMode="BitmapCache"/>
</ContentControl>
</Border>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</phone:PhoneApplicationPage.Resources>
1 ответ
Я только что обнаружил, что у меня точно такая же проблема. Я обошел его, взяв код LoopingSelector и LoopingSelectorItem из источника набора инструментов, переименовав их в CustomLoopingSelector и CustomLoopingSelectorItem. Затем в моем generic.xaml, но стиль по умолчанию Toolkit для LoopingSelector, но затем добавьте стиль, который я хотел для LoopingSelectorItem, как стиль по умолчанию CustomLoopingSelectorItem.
Это теперь дало мне стиль, который я хочу, и не исчезает, когда я возвращаюсь на страницу. Может быть стоит попробовать для вас.