Announcement

Collapse
No announcement yet.

WPF DataTrigger in ControlTemplate

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WPF DataTrigger in ControlTemplate

    Hallo,

    ich muss schon wieder nerven. Wieder an einer Kleinigkeit wahrscheinlich!
    Das ist ein CodeSnipe in XAML:

    Code:
    <ControlTemplate 
        x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}" 
        TargetType="{x:Type MenuItem}">
        <Border Name="Border" >
          <Grid>
            <Grid.ColumnDefinitions>
              <ColumnDefinition Width="Auto" SharedSizeGroup="Icon"/>
              <ColumnDefinition Width="*" />
              <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
              <ColumnDefinition Width="13"/>
            </Grid.ColumnDefinitions>
            <ContentPresenter 
              Name="Icon"
              Margin="6,0,6,0"
              VerticalAlignment="Center"
              ContentSource="Icon"/>
            <ContentPresenter 
              Name="HeaderHost"
              Grid.Column="1"
              ContentSource="Header"
              RecognizesAccessKey="True"/>
            <TextBlock x:Name="InputGestureText"
              Grid.Column="2"
              Text="{TemplateBinding InputGestureText}"
              Margin="5,2,2,2"
              DockPanel.Dock="Right"/>
            <Path 
              Grid.Column="3"
              HorizontalAlignment="Center"
              VerticalAlignment="Center"
              Data="M 0 0 L 0 7 L 4 3.5 Z" 
              Fill="{StaticResource GlyphBrush}" />
            <Popup 
              Name="Popup"
              Placement="Right"
              HorizontalOffset="-4" 
              IsOpen="{TemplateBinding IsSubmenuOpen}"
              AllowsTransparency="True" 
              Focusable="False"
              PopupAnimation="Fade">
              <Border 
                Name="SubmenuBorder"
                SnapsToDevicePixels="True"
                Background="{StaticResource WindowBackgroundBrush}"
                BorderBrush="{StaticResource SolidBorderBrush}"
                BorderThickness="1" >
                <ScrollViewer CanContentScroll="True"
                  Style="{StaticResource MenuScrollViewer}">
                  <StackPanel  
                  IsItemsHost="True" 
                  KeyboardNavigation.DirectionalNavigation="Cycle" />
                </ScrollViewer>
              </Border>
            </Popup>
          </Grid>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="Icon" Value="{x:Null}">
            <Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
          </Trigger>
          <Trigger Property="IsHighlighted" Value="true">
            <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}"/>
          </Trigger>
          <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
            <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="4"/>
            <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,3,0,3"/>
          </Trigger>
          <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>

    Ich möchte einen "DATATRIGGER" einbauen, der wie der Trigger auf das Popup-Control reagiert, und anschließend eine Animation mit dem SubmenuBorder spielt:#

    Code:
    <DataTrigger Binding="{Binding ElementName=Popup, Path=AllowsTransparency}" Value="True">
                     <!--<DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="SubmenuBorder"
                                                To="Red" Duration="0:0:2"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>-->
                </DataTrigger>
    Das funktioniert aber nicht.. Wenn ich das Storyboard mit normalen Settern ersetzte geht es....

    MfG
    Die Taschenlampe!

    Die perfekte Taschenlampe für Ihr Windows Phone!

    - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
    - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


    Hier gehts zu APP!
Working...
X