我有一个带有自定义模板的扩展器:
<ControlTemplate TargetType="{x:Type Expander}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Grid.Row="0">
<DockPanel>
<ToggleButton DockPanel.Dock="Right" Template="{DynamicResource ExpanderToggle}" />
<ContentPresenter DockPanel.Dock="Right" ContentSource="Tag" />
<ContentPresenter DockPanel.Dock="Left" ContentSource="Header">
</DockPanel>
</Border>
<Border Visibility="Collapsed" Grid.Row="1">
<ScrollViewer IsEnabled="True">
<ContentPresenter IsEnabled="{TemplateBinding IsEnabled}" />
</ScrollViewer>
</Border>
</Grid>
</ControlTemplate>
基本上,我试图让它成为如此,如果我将IsEnabled属性设置为false,我的scrollviewer仍然可以滚动(它保持启用状态,但我的控件的其他部分禁用)。有办法吗?
答案 0 :(得分:3)
如果Robert's answer不起作用,您可以随时创建一个名为AttachedProperty
的{{1}},并将您的ContentPresenter的IsEnabled绑定到该属性。
IsContentEnabled
答案 1 :(得分:2)
为您的DockPanel命名。然后使用e FindName(请参阅http://joshsmithonwpf.wordpress.com/2007/06/28/how-to-use-findname-with-a-contentcontrol/)在运行时获取该DockPanel。直接设置IsEnabled而不是更高级别的Expander控件。如果合适,请为您的ContentPresenter执行相同的操作。