Tutorials Forums
     Tutorials Videos
        Sign Up Now For FREE
Welcome, Guest
Username Password: Remember me

Scrollable Disabled ListBox in WPF
(1 viewing) (1) Guest
  • Page:
  • 1

TOPIC: Scrollable Disabled ListBox in WPF

Scrollable Disabled ListBox in WPF 23 Feb 2010 19:09 #280

Many of you developing applications in WPF might have had the need to keep a ListBox disabled yet scroll it so that you can see the items in it. Say, in case you want to show the details to the user who can just view the details presented and not edit it, and some of the details might happen to be in a ListBox.

As for the code, it is very simple. All I have done is created a custom control derived from ListBox, and added a Dependency Property, IsEnabledWithScroll. This property is directly bound with the IsEnabled property of the ItemsPresenter of the ListBox. By doing this, the scroll viewer is enabled even when the items are disabled.

I have changed the control template to reflect this, as shown below:
<Style TargetType="{x:Type local:ScrollableDisabledListBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Typelocal:ScrollableDisabledListBox}">
<Border >
<ScrollViewer IsEnabled="True" >
<ItemsPresenter IsEnabled="{Binding Path=
IsEnabledWithScroll,
RelativeSource={RelativeSource TemplatedParent}}"

SnapsToDevicePixels="{TemplateBinding
UIElement.SnapsToDevicePixels}"
/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>


You can always go ahead modifying the template, but remember to bind the ItemsPresenter IsEnabled property to the IsEnabledWithScroll property.

With this control in place, you should not be using the IsEnabled property of the ListBox. Go ahead and use the IsEnabledWithScroll property to enable/disable your control. Of course, you have the scrollable option enabled.
  • mnjon
  • OFFLINE
  • CE Staff
  • Posts: 78
  • Karma: 40
CodersEngine
  • Page:
  • 1
Moderators: mnjon
Time to create page: 0.33 seconds