Я смотрел бы на Присяжный острослов как движок шаблонов - я не попробовал никакие другие сам, но он сделал меня хорошо.
, Если Вы хотели придерживаться своего текущего подхода без шаблоны, что так плохо о выходной буферизации? Это даст Вам намного больше гибкости, чем необходимость объявить переменные, которые являются названиями жала функций, которые Вы хотите вызвать.
Если вам не нужен выбор, используйте ItemsControl
вместо ListBox
a++a
По крайней мере, один a
, за которым следует любое количество a
, без возврата. Затем попробуйте сопоставить еще один a
.
Если вы не хотите, чтобы их можно было выбирать, то вам, вероятно, не нужен список. Но если это то, что вам действительно нужно, вы можете сделать это со стилем:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<Style x:Key="{x:Type ListBoxItem}" TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border
Name="Border"
Padding="2"
SnapsToDevicePixels="true">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Border" Property="Background" Value="#DDDDDD"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#888888"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<Grid>
<ListBox>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
</ListBox>
</Grid>
</Page>
Посмотрите на триггер IsSelected. Вы можете сделать границу другого цвета, чтобы она не была «Уродливой», или сделать ее прозрачной, чтобы она не была видна при выборе.
Надеюсь, это поможет.