Seçilen öğeyi vurgulanacak bir GridView (Windows Phone 8.1 C#/XAML uygulaması) uygulamasında deniyorum. Ben Blend kullanarak GridViewItemStyle çıkarılan ettik ve aşağıdakileri içerir:WP8.1 XAML - seçildiğinde gösterilecek bir GridView öğesi nasıl edinilir?
Bu XAML tarafından kullanılan fırça renkleri tanımlanmış ve geçici olarak bunu gösteren gerektiğini kontrol edebilirsiniz böylece 1 olarak saydamlığını kurdum<Border x:Name="SelectedBorder" BorderBrush="{ThemeResource ListViewItemSelectedBackgroundThemeBrush}" BorderThickness="{ThemeResource GridViewItemMultiselectBorderThickness}" IsHitTestVisible="False" Opacity="0">
<Grid x:Name="SelectedCheckMark" HorizontalAlignment="Right" Height="34" Opacity="0" VerticalAlignment="Top" Width="34">
<Path x:Name="SelectedEarmark" Data="M0,0 L40,0 L40,40 z" Fill="{ThemeResource ListViewItemSelectedBackgroundThemeBrush}" Stretch="Fill"/>
<Path x:Name="SelectedGlyph" Data="M0,123 L39,93 L124,164 L256,18 L295,49 L124,240 z" Fill="{ThemeResource ListViewItemCheckThemeBrush}" FlowDirection="LeftToRight" HorizontalAlignment="Right" Height="14.5" Margin="0,1,1,0" Stretch="Fill" VerticalAlignment="Top" Width="17"/>
</Grid>
</Border>
. Çok uzak çok iyi.
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected"/>
<VisualState x:Name="Selected">
<Storyboard>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="CheckGlyph"/>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SelectedCheckMark"/>
</Storyboard>
</VisualState>
<VisualState x:Name="SelectedUnfocused">
<Storyboard>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="CheckGlyph"/>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SelectedCheckMark"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
ama bir öğe seçildiğinde, görsel gösterge kazanmak değildir:
görsel devlet aynı stil tanımı grup da vardır. Göstergeyi görüntüleyen XAML açık bir şekilde çalışıyor, bu yüzden görsel devlet grubunun neden olmadığını anlamaya çalışıyorum, özellikle bu Blend'den çıktıktan sonra. aşağıdaki gibi
GridView tanımı şöyledir:
<GridView
AutomationProperties.AutomationId="ItemListViewSection2"
AutomationProperties.Name="Items In Group"
SelectionMode="Single"
IsItemClickEnabled="True"
ItemsSource="{Binding GroupMembers}"
ItemTemplate="{StaticResource Individual80ItemTemplate}"
ItemContainerStyle="{StaticResource GridViewItemStyle1}"
ItemClick="ItemView_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True"
SelectionChanged="itemView_SelectionChanged"
Loaded="itemGridView_Loaded"/>
Güncelleme: Ben Çoklu Tek dan SelectionMode değiştirirseniz, iyi bir şey her öğe seçildiğinde olarak SelectedEarmark ve SelectedGlyph şimdi görünür olmasıdır ... Ben abl gibi görünüyor
<VisualStateGroup x:Name="MultiSelectStates">
<VisualStateGroup.Transitions>
<VisualTransition From="ListMultiSelect" GeneratedDuration="0:0:0.15" To="NoMultiSelect"/>
<VisualTransition From="NoMultiSelect" GeneratedDuration="0:0:0.15" To="ListMultiSelect"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="NoMultiSelect"/>
<VisualState x:Name="ListMultiSelect">
<Storyboard>
<DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="X" Storyboard.TargetName="CheckboxContainerTranslateTransform"/>
<DoubleAnimation Duration="0" To="{ThemeResource ListViewItemContentTranslateX}" Storyboard.TargetProperty="X" Storyboard.TargetName="ContentBorderTranslateTransform"/>
</Storyboard>
</VisualState>
<VisualState x:Name="GridMultiSelect">
<Storyboard>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="SelectedBorder"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
tek yolu: kötü bir şey olsa da, SelectedBorder Görsel Devlet stuffery başka azar datetikleyebilir girişlerin tümü için görünür hale olmasıdır Bu etrafında çalışmak için ya bu görsel durumları stilden kaldırarak veya sınır XAML'yi değiştirerek, temelde sınır çizmiyor. 'un'un utancı, yerleşik stili kullanamıyorum; Temelde kendi tarzımı sağlamak zorundayım. Sanırım, yansıma üzerinde, muhtemelen bu kadar kötü bir şey değildir ... bir kez öğe öğelerinin nasıl çalıştığını, ayarlayıcılarla birlikte nasıl çalıştığını anlarsınız.
Fırçaları nerede tanımlıyorsunuz? – Archana
selectionmode = "tek" SelectedEarmark ve SelectedGlyph, çerçeve içinde değil. Bu öneri için çerçevede –
Teşekkürler, @ChiragShah olup olmadığını görmek için çoklu seçim modunu değiştirin. Soruyu bu değişimin sonucuyla güncelledim. –