Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Как убрать выделение у listboxa?


Автор: DenWPF 23.11.2009, 12:48
Вообщем я делаю биндинг к листбоксу...
и надо что бы не работало его выделение(синим)

Автор: math64 24.11.2009, 10:29
Найди шаблон ListBox'а в MSDN и убери из него триггер, который делает это выделение.

Автор: DenWPF 24.11.2009, 14:27
так искал ))) в этом то и трабл))

Автор: tol05 24.11.2009, 16:09
Microsoft Expression Blend позволяет создавать и редактировать шаблоны.

Совсем недавно обсуждали http://forum.vingrad.ru/forum/topic-279384.html
Цитата

ListView > [RightClick] > EditTemplate 
и далее по тексту топика

Автор: math64 24.11.2009, 16:20
Вот эти стили:
Код

<Style x:Key="{x:Type ListBox}" TargetType="ListBox">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
  <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
  <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
  <Setter Property="MinWidth" Value="120"/>
  <Setter Property="MinHeight" Value="95"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ListBox">
        <Border 
          Name="Border" 
          Background="{StaticResource WindowBackgroundBrush}"
          BorderBrush="{StaticResource SolidBorderBrush}"
          BorderThickness="1"
          CornerRadius="2">
          <ScrollViewer 
            Margin="0"
            Focusable="false">
            <StackPanel Margin="2" IsItemsHost="True" />
          </ScrollViewer>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsEnabled" Value="false">
            <Setter TargetName="Border" Property="Background"
                    Value="{StaticResource DisabledBackgroundBrush}" />
            <Setter TargetName="Border" Property="BorderBrush"
                    Value="{StaticResource DisabledBorderBrush}" />
          </Trigger>
          <Trigger Property="IsGrouping" Value="true">
            <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

<Style x:Key="{x:Type ListBoxItem}" TargetType="ListBoxItem">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ListBoxItem">
        <Border 
          Name="Border"
          Padding="2"
          SnapsToDevicePixels="true">
          <ContentPresenter />
        </Border>
        <ControlTemplate.Triggers>
          <!-- Вот этот триггер нужно убрать -->
          <Trigger Property="IsSelected" Value="true">
            <Setter TargetName="Border" Property="Background"
                    Value="{StaticResource SelectedBackgroundBrush}"/>
          </Trigger>
          <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground"
                    Value="{StaticResource DisabledForegroundBrush}"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

Т.е.  изменения нужно вность только в стиль ListBoxItem

Автор: DenWPF 24.11.2009, 17:11
ругается на  <Setter.Value> говорит должно быть заполнено два параметра и value и properties

Автор: exBlender 25.11.2009, 04:46
Ну, дык и поставьте Value="transparent". Хотя, если убрать весь триггер целиком, ругани быть не должно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)