2011-03-15 3 views
1

Я начинаю с разработки WPF на сенсорном устройстве. Хотя .NET и WPF кажутся удивительной технологией, я несколько потерян.WPF: Style ListBoxItem для объединения цветов

Я разрабатываю общий элемент управления. Я определил UserControl, который содержит Grid, некоторые кнопки и SurfaceListBox. В фактическом C# -коде я обрабатываю события и добавляю новые элементы в поле списка, манипулируя атрибутом listItems-Attribute. Пока это прекрасно.

Теперь я хотел бы изменить стиль элементов списка - я хотел бы сделать их фон прозрачным, если они не выбраны, и полностью белые, если они есть. К сожалению, следующий фрагмент кода просто не работает. Он просто устанавливает цвет фона в элементе списка текст белый, но не весь элемент.

Обновление: теперь это работает!

<UserControl x:Class="SGEditor.MyControl" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     xmlns:my="http://schemas.microsoft.com/surface/2008" UseLayoutRounding="True"> 
<UserControl.Resources> 
    <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle"> 
     <Setter Property="Background" Value="Transparent" /> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="Background" Value="White" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

<Grid>   
    <my:SurfaceListBox Width="300" Height="300" /> 
</Grid> 
</UserControl> 

Спасибо!

Hans

ответ

1

Я не знаю точно, как сделать то, что вы хотите сделать, но я уверен, что вы не можете переназначить статическое значение системы, как вы пытаетесь сделать в x:Key. Это просто имя, которое вы используете для ссылки на ресурс позже в xaml, например MyBackgroundColor или что-то еще.

Я думаю, что вам нужно сделать что-то с триггерами в стиле для вашего элемента управления, который устанавливает соответствующие свойства для элементов, которые вы хотите изменить. Надеюсь, кто-то еще прольет больше света, потому что я редко делаю этот причудливый материал. =)

+0

Эй, спасибо. Обновлен мой вопрос;) – HansSchild

+0

Хорошо, понял. Спасибо тебе, друг! – HansSchild

Смежные вопросы