У меня есть Listbox со стилями, включая Listboxitem со стилями. Я пытаюсь создать анимацию, которая изменяет непрозрачность от 0 до 1, чтобы объекты отображались в списке. Я сумел сделать это с помощью следующего кода:анимация и непрозрачность ListBoxItem
<Style x:Key="ListBoxStyle1" TargetType="ListBox">
<Setter Property="Foreground" Value="#FF393C3F" />
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<Border Name="Border" Background="{x:Null}" BorderBrush="Black" BorderThickness="0" Padding="0">
<ItemsPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ListBoxItemStyle1" TargetType="ListBoxItem">
<Setter Property="Opacity" Value="0" />
<Setter Property="Height" Value="16" />
<Setter Property="VerticalContentAlignment" Value="Bottom" />
<Setter Property="VerticalAlignment" Value="Bottom" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border Name="Border" Padding="10,1,0,0" Background="{x:Null}">
<ContentPresenter VerticalAlignment="Center" SnapsToDevicePixels="True" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Border" Property="Background" Value="{StaticResource arrow}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="#FF828689" />
</Trigger>
<Trigger Property="IsVisible" Value="true">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="1.0" Duration="0:0:0.4" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Дело работает как следует (кроме этого я хочу больше времени, чтобы пройти между текущей и следующей анимации пункт запуска Но у него есть проблемы с непрозрачностью. ... все возможно устанавливаются прозрачным, фоны и все и я использую прозрачный .png кисть для выбранного элемента
проблемы с непрозрачностью анимацией и лучше всего виден на нижнем рисунке:
Это скриншот в середине анимации (в то время как непрозрачность listboxitems равна 0,8), и вы можете четко видеть белый фон вокруг всего текста. Это еще более заметно в первом выбранном элементе, потому что он использует прозрачный .png. Этот фон волшебным образом исчезает, когда анимация закончена, а непрозрачность - 1,0.
Как исправить эту проблему? Неужели я забыл установить какой-либо фон?
Благодарим за помощь!
Edit:
Я добавляю мое ListBox заявление:
<ListBox Height="239" HorizontalAlignment="Left" Margin="0,0,0,0" Name="listBox1" VerticalAlignment="Top" Width="145" Background="{x:Null}" FontWeight="Black" FontSize="8" BorderBrush="{x:Null}" SnapsToDevicePixels="True" BorderThickness="0" ItemContainerStyle="{StaticResource ListBoxItemStyle1}" Style="{StaticResource ListBoxStyle1}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel VerticalAlignment="Top" Background="{x:Null}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Также еще один вопрос: Как задержать анимации, что каждый ListBoxItem будет отображаться с задержкой нескольких миллисекунд до следующего ?
Благодарим за помощь.
Можете ли вы добавить объявление в виде списка? Я включил этот стиль в одну из моих программ и не имею проблемы, с которой вы сталкиваетесь. –
Спасибо за ваш ответ, Скотт. Я добавил вам свою декларацию по списку. Я провел еще несколько тестов, и это абсолютно не зависит от системы. Проблема в моем приложении или в WPF. Для этой проблемы не требуется анимация. Второй элемент списка содержит непрозрачность, установленную в стиле, отличном от 0 или 1.0, с белым фоном. Даже элементы списка без фонового изображения. Изображение в моем сообщении отображается в 0,8 непрозрачности списка. – Legoless