0

这里有一个非常简单的独立 XAML 文件:

<!-- MyListBox.xaml -->
<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainPage" Height="100" Width="525">
    <ListBox>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="42"></RowDefinition><!-- THE MAGIC LINE-->
            </Grid.RowDefinitions>
        </Grid>
    </ListBox>
</Page>

如果您在 Internet Explorer 中打开它并单击ListBox,它会变为蓝色。但是,如果您从中删除Height="42"THE MAGIC LINE则单击该框时该框仍为白色。我有两个问题:

  1. 为什么存在或不存在Height="42"会有所不同?
  2. THE MAGIC LINE即使包含明确的高度声明,我也想让盒子永久变白。你怎么做到这一点?
4

1 回答 1

2

蓝色是列表框的默认选择颜色。最简单的解决方法是设置以下

    <ListBox>
        <ListBox.Resources>
            <Style TargetType="{x:Type ListBox}">
                <Style.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
                </Style.Resources>
            </Style>
        </ListBox.Resources>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="42"></RowDefinition>
                <!-- THE MAGIC LINE-->
            </Grid.RowDefinitions>
        </Grid>
    </ListBox>

编辑:您的标题与您的其他问题不同。如果您想要不同的东西,请发表评论

于 2012-04-26T11:42:52.473 回答