IsSelected свойство WPF TabItem
У меня есть следующий код:
<TabItem Name="tabItemGeneral">
<TabItem.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="tabGeneralImg" Property="Source" Value="Image/tabGeneralActive.png"></Setter>
</Trigger>
</TabItem.Triggers>
<TabItem.Header>
<StackPanel Orientation="Horizontal" Margin="0,-3,0,0">
<Image Name="tabGeneralImg" Source="Images/tabGeneral.png" Width="11" Height="11"></Image>
<Label Name="tabGeneralLbl" Content="General"></Label>
</StackPanel>
</TabItem.Header>
<Grid>
<!-- ... -->
</Grid>
</TabItem>
но я вам Ошибка 1 элемент "IsSelected" недопустим, так как он не имеет квалификационного имени типа. C:MyNETbluetoothiLockWPFiLockiLockMainWindow.в XAML 63 60 крепления ilock
во время компиляции. Почему?
3 ответов
Как сказал CodeNaked, он не может использовать триггеры свойств непосредственно на элементах. Вместо этого вы должны использовать HeaderTemplate.
<TabControl>
<TabControl.Resources>
<DataTemplate x:Key="tabItemGeneralHeaderTemplate">
<StackPanel Orientation="Horizontal"
Margin="0,-3,0,0">
<Image Name="tabGeneralImg"
Source="Image/tabGeneralActive.png"
Width="11"
Height="11"/>
<Label Name="tabGeneralLbl"
Content="General"/>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected
,RelativeSource={RelativeSource TemplatedParent}}"
Value="True">
<Setter TargetName="tabGeneralImg"
Property="Source"
Value="Images/tabGeneral.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</TabControl.Resources>
<TabItem Name="tabItemGeneral"
HeaderTemplate="{StaticResource tabItemGeneralHeaderTemplate}">
<Grid>
...
</Grid>
</TabItem>
</TabControl>
на tabitem в.Триггеры коллекция наследуется от FrameworkElement и может содержать только EventTriggers. То, что у вас есть, недействительно.
триггеры, MultiTriggers, DataTriggers и MultiDataTriggers могут использоваться только в стиль.Триггеры, ControlTemplate.Триггеры или шаблон данных DataTemplate.Триггеры сборники.
вам нужно использовать TabItem.Изменили реализацию?
<Trigger Property="TabItem.IsSelected" Value="True">
<Setter TargetName="tabGeneralImg" Property="Source" Value="Image/tabGeneralActive.png">
</Setter>
</Trigger>