2011-05-17 14 views
7

Tengo un ComboBox en Silverlight que tiene un comportamiento muy incoherente.¿Forzar el ComboBox para que se abra en Silverlight?

I tienen la ComboBox unido a una colección dinámica de datos donde se añaden o eliminan elementos. Aquí está el XAML para el cuadro combinado:

<ComboBox Margin="0,-1,0,0" Width="20" Grid.Row="0" Grid.Column="0" ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ItemsContained}" x:Name="TabComboBox" > 
    <ComboBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Background="White" MinWidth="250" /> 
     </ItemsPanelTemplate> 
    </ComboBox.ItemsPanel> 
</ComboBox> 

Así que esto funciona muy bien y se abre el cuadro combinado "arriba" con la larga lista de elementos en ItemsContained. Sin embargo, si elimino uno de los elementos de ItemsContained, el cuadro combinado de pronto cambiará de apertura de "arriba" de apertura "hacia abajo" cuando se hace clic en él, a pesar del hecho de que hay una gran cantidad de artículos en esta colección y hay tiene solo 20 píxeles de espacio para que se abra. No puedo resolver esto. Incluso he intentado configurar la ElementsPanelTemplate para tener un MinHeight, pero eso no ayuda. ¿Alguien sabe cómo hacer que el ComboBox siempre se abra "arriba"?

Además, incluso si fijo el MinHeight a algo ridícula, como 10.000, aún así esto.

EDIT: Como una actualización, he conseguido que esto funcione mediante la creación de un nuevo ComboBox entera cada vez que se cambia ItemsContained. Este es el código:

scrollingGrid.Children.Remove(tabComboBox); 
tabComboBox.ItemsSource = null; 
ComboBox boxy = new ComboBox() 
{ 
    ItemsSource = ItemsContained 
}; 
scrollingGrid.Children.Add(boxy); 
tabComboBox = boxy; 

Creo que esto es un poco ad hoc, así que si alguien tiene una idea mejor, házmelo saber. Tampoco funciona cambiar la altura del ScrollViewer dentro de ComboBox.

+1

No sabe si funciona, pero [esta] (http://www.go4answers.com/Example/combobox-popup-direction-169369.aspx) sugiere establecer la propiedad MaxDropDownHeight de ComboBox. – publicgk

+0

Lo intenté, pero parece que no funciona. Creo que la propiedad MaxDropDownHeight siempre lo obligaría a abrir, y en este caso quiero que se abra. – TheEnigmaMachine

+1

Buena pregunta. Me encontré con el mismo comportamiento del ComboBox y no encontré una solución para abrirlo siempre. MaxDropDownHeight no funcionó para mí. – Jehof

Respuesta

2

Creo que esto es un error de Silverlight. Cuando establece la propiedad ItemsSource, el comportamiento de la ventana emergente del cuadro combinado cambia de arriba a abajo.

Puedo clonar mi cuadro combinado en caso DropDownClosed de cada cuadro combinado y que funciona para mí.

Private Sub cbRow1_DropDownClosed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbRow1.DropDownClosed, cbRow2.DropDownClosed, cbRow3.DropDownClosed, cbRow4.DropDownClosed, cbRow5.DropDownClosed 
    Dim co As ComboBox = CType(sender, ComboBox) 
    CloneComboBox(co) 
End Sub 

Private Sub CloneComboBox(ByVal co As ComboBox) 
    Dim cbClon = New ComboBox() 
    cbClon.Margin = co.Margin 
    cbClon.Width = co.Width 
    cbClon.Height = co.Height 
    cbClon.Name = co.Name 
    cbClon.Tag = co.Tag 

    cbClon.ItemsSource = co.ItemsSource 
    cbClon.SelectedIndex = co.SelectedIndex 

    LayoutRoot.Children.Remove(co) 
    LayoutRoot.Children.Add(cbClon) 

    //this is because I have my comboboxes inside a grid 
    System.Windows.Controls.Grid.SetRow(cbClon, cbClon.Tag) 
    System.Windows.Controls.Grid.SetColumn(cbClon, 0) 


    AddHandler cbClon.DropDownClosed, AddressOf cbRow1_DropDownClosed 

End Sub 
1

no estoy seguro de que esta solución será menos ad hoc, que su solución actual, pero pensé que había que ofrecerlo.

He editado una copia de la plantilla de ComboBox, y cuando el original solo tenía un ScrollViewer en un ItemsPresenter, agregué un rectángulo con un margen de 0,5000,0,0, para que el código emergente interno lo colocara en el arriba siempre También moví los enlaces de la plantilla al ScrollViewer para que no se extendiera a la parte superior, incluso si no había suficientes elementos.

El estilo es un poco largo pero aquí está, simplemente tírelo en sus recursos xaml (y configure el estilo de su ComboBox en ComboBoxStyle1). ¡Déjame saber cómo funciona para ti!

<ControlTemplate x:Key="ValidationToolTipTemplate"> 
     <Grid x:Name="Root" Margin="5,0" Opacity="0" RenderTransformOrigin="0,0"> 
      <Grid.RenderTransform> 
       <TranslateTransform x:Name="xform" X="-25"/> 
      </Grid.RenderTransform> 
      <VisualStateManager.VisualStateGroups> 
       <VisualStateGroup x:Name="OpenStates"> 
        <VisualStateGroup.Transitions> 
         <VisualTransition GeneratedDuration="0"/> 
         <VisualTransition GeneratedDuration="0:0:0.2" To="Open"> 
          <Storyboard> 
           <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="X" Storyboard.TargetName="xform"> 
            <DoubleAnimation.EasingFunction> 
             <BackEase Amplitude=".3" EasingMode="EaseOut"/> 
            </DoubleAnimation.EasingFunction> 
           </DoubleAnimation> 
           <DoubleAnimation Duration="0:0:0.2" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root"/> 
          </Storyboard> 
         </VisualTransition> 
        </VisualStateGroup.Transitions> 
        <VisualState x:Name="Closed"> 
         <Storyboard> 
          <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root"/> 
         </Storyboard> 
        </VisualState> 
        <VisualState x:Name="Open"> 
         <Storyboard> 
          <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="X" Storyboard.TargetName="xform"/> 
          <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Root"/> 
         </Storyboard> 
        </VisualState> 
       </VisualStateGroup> 
      </VisualStateManager.VisualStateGroups> 
      <Border Background="#052A2E31" CornerRadius="5" Margin="4,4,-4,-4"/> 
      <Border Background="#152A2E31" CornerRadius="4" Margin="3,3,-3,-3"/> 
      <Border Background="#252A2E31" CornerRadius="3" Margin="2,2,-2,-2"/> 
      <Border Background="#352A2E31" CornerRadius="2" Margin="1,1,-1,-1"/> 
      <Border Background="#FFDC000C" CornerRadius="2"/> 
      <Border CornerRadius="2"> 
       <TextBlock Foreground="White" MaxWidth="250" Margin="8,4,8,4" TextWrapping="Wrap" Text="{Binding (Validation.Errors)[0].ErrorContent}" UseLayoutRounding="false"/> 
      </Border> 
     </Grid> 
    </ControlTemplate> 
    <Style x:Key="ComboBoxStyle1" TargetType="ComboBox"> 
     <Setter Property="Padding" Value="6,2,25,2"/> 
     <Setter Property="Background" Value="#FF1F3B53"/> 
     <Setter Property="HorizontalContentAlignment" Value="Left"/> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="TabNavigation" Value="Once"/> 
     <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/> 
     <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/> 
     <Setter Property="BorderBrush"> 
      <Setter.Value> 
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
        <GradientStop Color="#FFA3AEB9" Offset="0"/> 
        <GradientStop Color="#FF8399A9" Offset="0.375"/> 
        <GradientStop Color="#FF718597" Offset="0.375"/> 
        <GradientStop Color="#FF617584" Offset="1"/> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ComboBox"> 
        <Grid> 
         <Grid.Resources> 
          <Style x:Name="comboToggleStyle" TargetType="ToggleButton"> 
           <Setter Property="Foreground" Value="#FF333333"/> 
           <Setter Property="Background" Value="#FF1F3B53"/> 
           <Setter Property="BorderBrush"> 
            <Setter.Value> 
             <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
              <GradientStop Color="#FFA3AEB9" Offset="0"/> 
              <GradientStop Color="#FF8399A9" Offset="0.375"/> 
              <GradientStop Color="#FF718597" Offset="0.375"/> 
              <GradientStop Color="#FF617584" Offset="1"/> 
             </LinearGradientBrush> 
            </Setter.Value> 
           </Setter> 
           <Setter Property="BorderThickness" Value="1"/> 
           <Setter Property="Padding" Value="3"/> 
           <Setter Property="Template"> 
            <Setter.Value> 
             <ControlTemplate TargetType="ToggleButton"> 
              <Grid> 
               <VisualStateManager.VisualStateGroups> 
                <VisualStateGroup x:Name="CommonStates"> 
                 <VisualState x:Name="Normal"/> 
                 <VisualState x:Name="MouseOver"> 
                  <Storyboard> 
                   <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundOverlay"/> 
                   <ColorAnimation Duration="0" To="#7FFFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                   <ColorAnimation Duration="0" To="#CCFFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                   <ColorAnimation Duration="0" To="#F2FFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                  </Storyboard> 
                 </VisualState> 
                 <VisualState x:Name="Pressed"> 
                  <Storyboard> 
                   <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="BackgroundOverlay2"/> 
                   <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Highlight"/> 
                   <ColorAnimation Duration="0" To="#E5FFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                   <ColorAnimation Duration="0" To="#BCFFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                   <ColorAnimation Duration="0" To="#6BFFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                   <ColorAnimation Duration="0" To="#F2FFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient"/> 
                  </Storyboard> 
                 </VisualState> 
                 <VisualState x:Name="Disabled"/> 
                </VisualStateGroup> 
                <VisualStateGroup x:Name="CheckStates"> 
                 <VisualState x:Name="Checked"> 
                  <Storyboard> 
                   <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="BackgroundOverlay3"/> 
                   <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Highlight"/> 
                   <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="BackgroundGradient2"/> 
                   <ColorAnimation Duration="0" To="#E5FFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient2"/> 
                   <ColorAnimation Duration="0" To="#BCFFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient2"/> 
                   <ColorAnimation Duration="0" To="#6BFFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient2"/> 
                   <ColorAnimation Duration="0" To="#F2FFFFFF" Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)" Storyboard.TargetName="BackgroundGradient2"/> 
                  </Storyboard> 
                 </VisualState> 
                 <VisualState x:Name="Unchecked"/> 
                </VisualStateGroup> 
                <VisualStateGroup x:Name="FocusStates"> 
                 <VisualState x:Name="Focused"> 
                  <Storyboard> 
                   <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Visibility" Storyboard.TargetName="FocusVisualElement"> 
                    <DiscreteObjectKeyFrame KeyTime="0"> 
                     <DiscreteObjectKeyFrame.Value> 
                      <Visibility>Visible</Visibility> 
                     </DiscreteObjectKeyFrame.Value> 
                    </DiscreteObjectKeyFrame> 
                   </ObjectAnimationUsingKeyFrames> 
                  </Storyboard> 
                 </VisualState> 
                 <VisualState x:Name="Unfocused"/> 
                </VisualStateGroup> 
               </VisualStateManager.VisualStateGroups> 
               <Rectangle x:Name="Background" Fill="{TemplateBinding Background}" RadiusY="3" RadiusX="3" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}"/> 
               <Rectangle x:Name="BackgroundOverlay" Fill="#FF448DCA" Opacity="0" RadiusY="3" RadiusX="3" Stroke="#00000000" StrokeThickness="{TemplateBinding BorderThickness}"/> 
               <Rectangle x:Name="BackgroundOverlay2" Fill="#FF448DCA" Opacity="0" RadiusY="3" RadiusX="3" Stroke="#00000000" StrokeThickness="{TemplateBinding BorderThickness}"/> 
               <Rectangle x:Name="BackgroundGradient" Margin="{TemplateBinding BorderThickness}" RadiusY="2" RadiusX="2" Stroke="#FFFFFFFF" StrokeThickness="1"> 
                <Rectangle.Fill> 
                 <LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0"> 
                  <GradientStop Color="#FFFFFFFF" Offset="0"/> 
                  <GradientStop Color="#F9FFFFFF" Offset="0.375"/> 
                  <GradientStop Color="#E5FFFFFF" Offset="0.625"/> 
                  <GradientStop Color="#C6FFFFFF" Offset="1"/> 
                 </LinearGradientBrush> 
                </Rectangle.Fill> 
               </Rectangle> 
               <Rectangle x:Name="BackgroundOverlay3" Fill="#FF448DCA" Opacity="0" RadiusY="3" RadiusX="3" Stroke="#00000000" StrokeThickness="{TemplateBinding BorderThickness}"/> 
               <Rectangle x:Name="BackgroundGradient2" Margin="{TemplateBinding BorderThickness}" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FFFFFFFF" StrokeThickness="1"> 
                <Rectangle.Fill> 
                 <LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0"> 
                  <GradientStop Color="#FFFFFFFF" Offset="0"/> 
                  <GradientStop Color="#F9FFFFFF" Offset="0.375"/> 
                  <GradientStop Color="#E5FFFFFF" Offset="0.625"/> 
                  <GradientStop Color="#C6FFFFFF" Offset="1"/> 
                 </LinearGradientBrush> 
                </Rectangle.Fill> 
               </Rectangle> 
               <Rectangle x:Name="Highlight" IsHitTestVisible="false" Margin="{TemplateBinding BorderThickness}" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FF6DBDD1" StrokeThickness="1"/> 
               <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
               <Rectangle x:Name="FocusVisualElement" IsHitTestVisible="false" Margin="1" RadiusY="3.5" RadiusX="3.5" Stroke="#FF6DBDD1" StrokeThickness="1" Visibility="Collapsed"/> 
              </Grid> 
             </ControlTemplate> 
            </Setter.Value> 
           </Setter> 
          </Style> 
         </Grid.Resources> 
         <VisualStateManager.VisualStateGroups> 
          <VisualStateGroup x:Name="CommonStates"> 
           <VisualState x:Name="Normal"/> 
           <VisualState x:Name="MouseOver"/> 
           <VisualState x:Name="Disabled"> 
            <Storyboard> 
             <DoubleAnimation Duration="00:00:00" To=".55" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="DisabledVisualElement"/> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
          <VisualStateGroup x:Name="FocusStates"> 
           <VisualState x:Name="Focused"> 
            <Storyboard> 
             <DoubleAnimation Duration="00:00:00" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="FocusVisualElement"/> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="Unfocused"/> 
           <VisualState x:Name="FocusedDropDown"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Duration="00:00:00" Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="PopupBorder"> 
              <DiscreteObjectKeyFrame KeyTime="00:00:00"> 
               <DiscreteObjectKeyFrame.Value> 
                <Visibility>Visible</Visibility> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
          <VisualStateGroup x:Name="ValidationStates"> 
           <VisualState x:Name="Valid"/> 
           <VisualState x:Name="InvalidUnfocused"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement"> 
              <DiscreteObjectKeyFrame KeyTime="0"> 
               <DiscreteObjectKeyFrame.Value> 
                <Visibility>Visible</Visibility> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="InvalidFocused"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement"> 
              <DiscreteObjectKeyFrame KeyTime="0"> 
               <DiscreteObjectKeyFrame.Value> 
                <Visibility>Visible</Visibility> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="validationTooltip"> 
              <DiscreteObjectKeyFrame KeyTime="0"> 
               <DiscreteObjectKeyFrame.Value> 
                <System:Boolean>True</System:Boolean> 
               </DiscreteObjectKeyFrame.Value> 
              </DiscreteObjectKeyFrame> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
         </VisualStateManager.VisualStateGroups> 
         <Border x:Name="ContentPresenterBorder"> 
          <Grid> 
           <ToggleButton x:Name="DropDownToggle" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="Stretch" HorizontalContentAlignment="Right" Margin="0" Style="{StaticResource comboToggleStyle}" VerticalAlignment="Stretch"> 
            <Path x:Name="BtnArrow" Data="F1 M 301.14,-189.041L 311.57,-189.041L 306.355,-182.942L 301.14,-189.041 Z " HorizontalAlignment="Right" Height="4" Margin="0,0,6,0" Stretch="Uniform" Width="8"> 
             <Path.Fill> 
              <SolidColorBrush x:Name="BtnArrowColor" Color="#FF333333"/> 
             </Path.Fill> 
            </Path> 
           </ToggleButton> 
           <ContentPresenter x:Name="ContentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> 
            <TextBlock Text=" "/> 
           </ContentPresenter> 
          </Grid> 
         </Border> 
         <Rectangle x:Name="DisabledVisualElement" Fill="White" IsHitTestVisible="false" Opacity="0" RadiusY="3" RadiusX="3"/> 
         <Rectangle x:Name="FocusVisualElement" IsHitTestVisible="false" Margin="1" Opacity="0" RadiusY="2" RadiusX="2" Stroke="#FF6DBDD1" StrokeThickness="1"/> 
         <Border x:Name="ValidationErrorElement" BorderBrush="#FFDB000C" BorderThickness="1" CornerRadius="1" Visibility="Collapsed"> 
          <ToolTipService.ToolTip> 
           <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource ValidationToolTipTemplate}"> 
            <ToolTip.Triggers> 
             <EventTrigger RoutedEvent="Canvas.Loaded"> 
              <BeginStoryboard> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible" Storyboard.TargetName="validationTooltip"> 
                 <DiscreteObjectKeyFrame KeyTime="0"> 
                  <DiscreteObjectKeyFrame.Value> 
                   <System:Boolean>true</System:Boolean> 
                  </DiscreteObjectKeyFrame.Value> 
                 </DiscreteObjectKeyFrame> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </BeginStoryboard> 
             </EventTrigger> 
            </ToolTip.Triggers> 
           </ToolTip> 
          </ToolTipService.ToolTip> 
          <Grid Background="Transparent" HorizontalAlignment="Right" Height="12" Margin="1,-4,-4,0" VerticalAlignment="Top" Width="12"> 
           <Path Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z" Fill="#FFDC000C" Margin="1,3,0,0"/> 
           <Path Data="M 0,0 L2,0 L 8,6 L8,8" Fill="#ffffff" Margin="1,3,0,0"/> 
          </Grid> 
         </Border> 
         <Popup x:Name="Popup" > 
          <Border x:Name="PopupBorder" HorizontalAlignment="Stretch"> 
           <Grid> 

            <ScrollViewer BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" VerticalAlignment="Bottom" x:Name="ScrollViewer" Padding="1"> 
             <ScrollViewer.Background> 
              <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
               <GradientStop Color="White" Offset="0"/> 
               <GradientStop Color="#FFFEFEFE" Offset="1"/> 
              </LinearGradientBrush> 
             </ScrollViewer.Background> 
             <ItemsPresenter/> 
            </ScrollViewer> 
            <Rectangle Margin="0,5000,0,0"/> 
           </Grid> 

          </Border> 
         </Popup> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
Cuestiones relacionadas