2011-05-17 72 views
7

我在Silverlight中有一個組合框,具有非常不一致的行爲。強制組合框在Silverlight中打開?

我將ComboBox綁定到添加或刪除元素的動態數據集合。下面是ComboBox中的XAML:

<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> 

所以這偉大工程和組合框打開「上升」與ItemsContained項目的一長串。但是,如果我刪除ItemsContained中的某個項目,ComboBox突然從打開「向上」切換到打開「向下」,當您點擊它時,儘管事實上這個集合中有很多項目,只有20個左右像素的空間可以打開。我無法弄清楚這一點。我甚至嘗試設置ItemsPanelTemplate有一個MinHeight,但這沒有幫助。有誰知道如何使組合框始終打開「向上」?另外,即使我將MinHeight設置爲荒謬的東西,比如10,000,它仍然會這樣做。

編輯:作爲更新,每當ItemsContained發生更改時,我都通過創建一個全新的ComboBox來實現此目的。這是代碼:

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

我覺得這是一個小特設,所以如果任何人有更好的主意,讓我知道。在ComboBox中更改ScrollViewer的高度也不起作用。

+1

不知道它的工作原理,但[這](http://www.go4answers.com/Example/combobox-popup-direction-169369.aspx)建議設置ComboBox的MaxDropDownHeight財產。 – publicgk 2011-05-18 07:26:30

+0

我試過了,但它似乎不起作用。我認爲MaxDropDownHeight屬性總是強制它打開,在這種情況下,我希望它打開。 – TheEnigmaMachine 2011-05-18 14:17:24

+1

好問題。我偶然發現了ComboBox的相同行爲,並沒有找到一個解決方案來打開它。 MaxDropDownHeight沒有爲我工作。 – Jehof 2011-05-18 19:00:38

回答

2

我認爲這是一個Silverlight錯誤。當您設置ItemsSource屬性時,組合框彈出窗口的行爲會從上到下變化。

我在每個組合框的事件DropDownClosed中克隆我的組合框,併爲我工作。

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

我不確定這個解決方案會比現在的修復更少,但我想我會提供它。

我編輯了一個ComboBox模板的副本,並且其中原始只在ItemsPresenter中有一個ScrollViewer,我添加了一個邊距爲0,5000,0,0的Rectangle,以便內部Popup代碼將它放在總是最好的。我還將模板綁定移​​動到ScrollViewer,以便即使沒有足夠的項目也不會伸展到頂部。

樣式有點長,但在這裏它只是將它放在資源xaml中(並將ComboBox的樣式設置爲ComboBoxStyle1)。讓我知道它是如何爲你工作的!

<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>