2011-08-18 59 views
3

所以我有超出他們在網格的按鈕,但他們只顯示在鼠標懸停。在某些網格中,它們渲染正確,並且某些網格渲染不正確。這似乎是一致的哪些是不正確的,但我不明白爲什麼問題發生在這些特定的網格。我用snoop查看了元素,並且在渲染時無法看到屬性的任何問題。不知道爲什麼一些控件被剪輯

正確的渲染:

enter image description here

不正確的渲染:

enter image description here

下面的代碼

<ScrollViewer x:Name="GridItemScroller" Height="300"> 
    <ItemsControl Margin="0,0" ItemsSource="{Binding Source={StaticResource rowItemsView}}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <Grid VerticalAlignment="Top" /> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemContainerStyle> 
      <Style TargetType="ContentPresenter"> 
       <Setter Property="Margin" Value="{Binding RowIndex, Converter={StaticResource IndexToPositionConverter}, ConverterParameter=20}" /> 
       <Setter Property="VerticalAlignment" Value="Top" /> 
      </Style> 
     </ItemsControl.ItemContainerStyle> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate > 
       <Grid x:Name="itemPanel" VerticalAlignment="Top" ClipToBounds="False"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="Auto" /> 
        </Grid.ColumnDefinitions> 
        <Rectangle Grid.Column="0" Grid.ColumnSpan="2" Fill="Transparent" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
        <CheckBox IsChecked="{Binding Path=Filtered, Converter={StaticResource NotConverter}}" Content="{Binding RowName}" /> 
        <Canvas x:Name="CheckBoxButtonPanel" Grid.Column="1" ClipToBounds="False" VerticalAlignment="Center" Width="25" Height="2"> 
         <Canvas.Style> 
          <Style TargetType="Canvas"> 
           <Setter Property="Visibility" Value="Collapsed" /> 
           <Setter Property="Panel.ZIndex" Value="0" /> 
           <Style.Triggers> 
            <DataTrigger Binding="{Binding ElementName=itemPanel, Path=IsMouseOver}" Value="True"> 
             <Setter Property="Visibility" Value="Visible" /> 
             <Setter Property="Panel.ZIndex" Value="10" /> 
            </DataTrigger> 
           </Style.Triggers> 
          </Style> 
         </Canvas.Style> 
         <Button HorizontalAlignment="Right" Height="15" Width="25" Canvas.Top="-15" local:ToolIcon.IconName ="{Binding Source={StaticResource LanguageInfo}, XPath=//Strings/@Up}" local:ToolIcon.Image="pack://application:,,,/CalUI;component/images/Up.png" 
          Style="{DynamicResource ToolIcon}" Click="Move_Up"/> 
         <Button HorizontalAlignment="Right" Height="15" Width="25" Canvas.Top="2" local:ToolIcon.IconName ="{Binding Source={StaticResource LanguageInfo}, XPath=//Strings/@Down}" local:ToolIcon.Image="pack://application:,,,/CalUI;component/images/Down.png" 
          Style="{DynamicResource ToolIcon}" Click="Move_Down"/> 
        </Canvas> 
       </Grid> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</ScrollViewer> 

這裏是XAML的ToolIcon風格

<Style x:Key="ToolIcon" TargetType="{x:Type Button}"> 
    <Setter Property="BorderBrush" Value="Transparent" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid x:Name="ImageGrid"> 
        <Grid.Effect> 
         <local:SaturationLuminanceEffect SaturationShift="0.95" LuminanceShift="0.8" /> 
        </Grid.Effect> 
        <Image x:Name="image" RenderTransformOrigin="0.5,0.5" Source="{TemplateBinding local:ToolIcon.Image}" /> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Effect" TargetName="ImageGrid"> 
          <Setter.Value> 
           <local:SaturationLuminanceEffect SaturationShift="1" LuminanceShift="1.2" /> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter Property="Effect" TargetName="ImageGrid"> 
          <Setter.Value> 
           <local:SaturationLuminanceEffect SaturationShift="1.05" LuminanceShift="1.0" /> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter Property="Effect" TargetName="ImageGrid"> 
          <Setter.Value> 
           <local:SaturationLuminanceEffect SaturationShift="0.80" LuminanceShift="1.3" /> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

是否ListView控件?如果是的話 - 你可以使用內置ListView.ScrollViewer而不是自己包裝ItemsControl – sll

+0

我使用我自己的,因爲這些項目實際上是數據網格的可見性和順序屬性,所以這裏的每一行對應於另一個數據網格應用程序的區域。 –

+0

抱歉,但仍然不清楚,你的意思是說你的項目「數據網格的可見性和訂單屬性」 – sll

回答