2011-05-25 44 views
1

我在wpf中制作了一个自定义控件,但是我对构成项目控件一部分的按钮存在问题(附加图片中每个项目元素中的x基本上都是按钮)基本上该按钮被禁用,但我不禁用它!在自定义控件中禁用了按钮

如果我只是把内部项目(MultiSelectionItem)到网格中的一个单独然后按钮做工精细,所以它必须有一些与我在模板外控制ItemsControl元素的使用(MultiSelectionBox

图片:

img

<Style TargetType="{x:Type local:MultipleSelectionBox}"> 
<Setter Property="Template"> 
    <Setter.Value> 
    <ControlTemplate TargetType="{x:Type local:MultipleSelectionBox}"> 
     <Border Background="{TemplateBinding Background}" 
       BorderBrush="{TemplateBinding BorderBrush}" 
       BorderThickness="{TemplateBinding BorderThickness}"> 
     <ItemsControl ItemsSource="{Binding multipleSelectionItems}"> 
      <ItemsControl.Template> 
      <ControlTemplate> 
       <WrapPanel IsItemsHost="True"/> 
      </ControlTemplate> 
      </ItemsControl.Template> 
     </ItemsControl> 
     </Border> 
    </ControlTemplate> 
    </Setter.Value> 
</Setter> 
</Style> 

<Style TargetType="{x:Type local:MultipleSelectionItem}"> 
<Setter Property="Template"> 
    <Setter.Value> 
    <ControlTemplate TargetType="{x:Type local:MultipleSelectionItem}"> 
     <Border BorderBrush="#FFC0CBD9" BorderThickness="1" Margin="0,0,2,2" CornerRadius="0"> 
     <Border.Style> 
      <Style TargetType="Border"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background"> 
        <Setter.Value> 
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
         <GradientStop Color="#FFDFE9F5" Offset="0" /> 
         <GradientStop Color="#FFEEF3FC" Offset="1" /> 
        </LinearGradientBrush> 
        </Setter.Value> 
       </Setter> 
       </Trigger> 
      </Style.Triggers> 
      </Style> 
     </Border.Style> 
     <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="20" /> 
      <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <Button Command="{x:Static local:MultipleSelectionItemCommands.RemoveCommand}" IsEnabled="True"> 
      <Button.Template> 
       <ControlTemplate> 
       <Image Source="/CustomFormResearch;component/Images/x_no_hover.jpg" Margin="2,0,0,0" Height="11" Width="11"> 
        <Image.Style> 
        <Style TargetType="{x:Type Image}"> 
         <Setter Property="Source" Value="/CustomFormResearch;component/Images/x_no_hover.jpg" /> 
         <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Source" Value="/CustomFormResearch;component/Images/x_with_hover.jpg" /> 
         </Trigger> 
         </Style.Triggers> 
        </Style> 
        </Image.Style> 
       </Image> 
       </ControlTemplate> 
      </Button.Template> 
      </Button> 
      <TextBlock Text="{Binding DisplayData}" VerticalAlignment="Stretch" Margin="5,0,5,0" Grid.Column="1" /> 
     </Grid> 
     </Border> 
    </ControlTemplate> 
    </Setter.Value> 
</Setter> 
</Style> 

回答