将ListBox保持在网格中

时间:2012-04-26 11:24:40

标签: wpf xaml listbox grid focus

这里有一个非常简单的独立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包含明确的高度声明,我也希望永久保持白色。你是怎么做到的?

1 个答案:

答案 0 :(得分: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>

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