在Windows 8应用商店中使用c#选择控件时更改边框颜色

时间:2013-05-10 13:03:09

标签: c# xaml windows-8

我有一个使用此xaml的图像和文本的gridview控件:

<Grid Grid.Column="1" Margin="0,40,30,0" >
     <GridView x:Name="celebGridView" Margin="0,0,0,0" Padding="0,0,0,0">
             <GridView.ItemsPanel>
                 <ItemsPanelTemplate>
                     <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="3"/>
                 </ItemsPanelTemplate>
               </GridView.ItemsPanel>

               <GridView.Header>
                   <StackPanel Width="480" Margin="0,4,14,0">
                       <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
                          <TextBlock Text="Most Viewed Celebs" Foreground="black"                                       FontSize="25"/>
                           <Image Source="/images/Navigation-Right.png"  Margin="10,0,0,0"/>
                         </StackPanel>

                    </StackPanel>
                  </GridView.Header>

                   <GridView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel>
                                        <Image Source="{Binding ImageBitmap}" />
                                        <TextBlock HorizontalAlignment="Center" Text="{Binding Name_}" Foreground="Black"/>
                                    </StackPanel>
                                </DataTemplate>
                            </GridView.ItemTemplate>
                        </GridView>
                    </Grid>

我在下面的gridview中的所选项目周围得到了这个紫色边框

selected purple border color around image

如何覆盖此行为,我需要将颜色更改为自定义颜色(#fdeb01)。

2 个答案:

答案 0 :(得分:4)

您可以编辑GridView的ItemContainerStyle。最简单的方法是使用Blend并找到SelectedBorder元素并将笔触笔刷更改为您想要的颜色。

Open XAML with Blend and create/edit ItemContainerStyle

Look for SelectedBorder element

Change stroke brush to a custom color

And you should see something like this

答案 1 :(得分:1)

除了使用Expression Blend之外,请注意XAML中的Metro ListView选择颜色修改对GridViewItems也有效,因此更改以下内容:

<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="#fdeb01">     </SolidColorBrush>
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="#ffffff"></SolidColorBrush>
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="#fdeb01"></SolidColorBrush>
<SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="#fdeb01"></SolidColorBrush>

也会影响gridview。