Wpf 是否可以引用microsoft';s程序集?
我有一个场景,我必须为一些WPF控件提供我自己的控件模板,即GridViewHeader。当您在blend中查看GridViewHEader的控件模板时,它是从几个其他控件中删除的,在某些情况下,这些控件仅为该控件设置样式,即列之间的拆分器。 这些模板,显然是隐藏在system…dll(或主题dll)中某处的资源。 所以,我的问题是-有没有一种方法可以引用这些预定义的模板?到目前为止,我的资源中已经有了自己的副本,但我不喜欢这种方法 以下是示例场景: 我有一个GridViewColumnHeader:Wpf 是否可以引用microsoft';s程序集?,wpf,xaml,Wpf,Xaml,我有一个场景,我必须为一些WPF控件提供我自己的控件模板,即GridViewHeader。当您在blend中查看GridViewHEader的控件模板时,它是从几个其他控件中删除的,在某些情况下,这些控件仅为该控件设置样式,即列之间的拆分器。 这些模板,显然是隐藏在system…dll(或主题dll)中某处的资源。 所以,我的问题是-有没有一种方法可以引用这些预定义的模板?到目前为止,我的资源中已经有了自己的副本,但我不喜欢这种方法 以下是示例场景: 我有一个GridViewColumnHead
<Style TargetType="{x:Type GridViewColumnHeader}" x:Key="gridViewColumnStyle">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Background" Value="{StaticResource GridViewHeaderBackgroundColor}"/>
<Setter Property="BorderBrush" Value="{StaticResource GridViewHeaderForegroundColor}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="2,0,2,0"/>
<Setter Property="Foreground" Value="{StaticResource GridViewHeaderForegroundColor}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
<Grid SnapsToDevicePixels="true" Tag="Header" Name="Header">
<ContentPresenter Name="HeaderContent" Margin="0,0,0,1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<Canvas>
<Thumb x:Name="PART_HeaderGripper" Style="{StaticResource GridViewColumnHeaderGripper}"/>
</Canvas>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="HeaderContent" Property="Margin" Value="1,1,0,0"/>
</Trigger>
<Trigger Property="Height" Value="Auto">
<Setter Property="MinHeight" Value="20"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
到目前为止,还没有什么有趣的事情,但我想直接在模板中添加一些额外的功能,我会让Cotnt presenter保持原样,在它旁边添加我的控件,我想让Thumb保留框架中的默认值。我发现了microsoft提供的主题:
Thumb的主题如下所示:
<Style x:Key="GridViewColumnHeaderGripper"
TargetType="{x:Type Thumb}">
<Setter Property="Canvas.Right"
Value="-9"/>
<Setter Property="Width"
Value="18"/>
<Setter Property="Height"
Value="{Binding Path=ActualHeight,RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="Padding"
Value="0"/>
<Setter Property="Background"
Value="{StaticResource GridViewColumnHeaderBorderBackground}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Padding="{TemplateBinding Padding}"
Background="Transparent">
<Rectangle HorizontalAlignment="Center"
Width="1"
Fill="{TemplateBinding Background}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
到目前为止-我必须复制并粘贴该样式,而我更喜欢从参考资料中获取对它的引用。引用100%可能发生更改的内部资源是不可用的-最好只是复制它 可以引用它们,但正如paulbetts所说,不建议这样做,因为它们可能会改变。也要考虑你所做的是否是正确的。你能编辑你的问题来解释你为什么需要这样做吗