728x90
반응형
728x170
■ ControlTemplate 엘리먼트를 사용해 ScrollViewer 엘리먼트를 정의하는 방법을 보여준다.
▶ MainWindow.xaml
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestProject"
Width="800"
Height="600"
Title="TestProject"
FontFamily="나눔고딕코딩"
FontSize="16">
<Window.Resources>
<Color x:Key="BorderMediumColorKey">#ff888888</Color>
<Style x:Key="LeftScrollViewerStyleKey" TargetType="{x:Type ScrollViewer}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Grid.Column="1"
BorderThickness="0 1 1 1">
<Border.BorderBrush>
<SolidColorBrush Color="{DynamicResource BorderMediumColorKey}" />
</Border.BorderBrush>
<ScrollContentPresenter CanContentScroll="{TemplateBinding CanContentScroll}" />
</Border>
<ScrollBar Name="PART_VerticalScrollBar"
ViewportSize="{TemplateBinding ViewportHeight}"
Maximum="{TemplateBinding ScrollableHeight}"
Value="{TemplateBinding VerticalOffset}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" />
<ScrollBar Name="PART_HorizontalScrollBar" Grid.Row="1" Grid.Column="1"
ViewportSize="{TemplateBinding ViewportWidth}"
Orientation="Horizontal"
Maximum="{TemplateBinding ScrollableWidth}"
Value="{TemplateBinding HorizontalOffset}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<ScrollViewer Style="{StaticResource LeftScrollViewerStyleKey}">
<StackPanel>
<Ellipse
Margin="10"
Width="300"
Height="300"
Fill="Red" />
<Ellipse
Margin="10"
Width="300"
Height="300"
Fill="Green" />
<Ellipse
Margin="10"
Width="300"
Height="300"
Fill="Blue" />
</StackPanel>
</ScrollViewer>
</Window>
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] ControlTemplate 엘리먼트 : Thumb 엘리먼트 정의하기 (0) | 2023.02.08 |
---|---|
[C#/WPF] ControlTemplate 엘리먼트 : TextBox 엘리먼트 정의하기 (0) | 2023.02.07 |
[C#/WPF] ControlTemplate 엘리먼트 : TabControl 엘리먼트 정의하기 (0) | 2023.02.07 |
[C#/WPF] ControlTemplate 엘리먼트 : StatusBar 엘리먼트 정의하기 (0) | 2023.02.07 |
[C#/WPF] ControlTemplate 엘리먼트 : Slider 엘리먼트 정의하기 (0) | 2023.02.06 |
[C#/WPF] ControlTemplate 엘리먼트 : ScrollBar 엘리먼트 정의하기 (0) | 2023.01.29 |
[C#/WPF] ControlTemplate 엘리먼트 : RepeatButton 엘리먼트 정의하기 (0) | 2023.01.29 |
[C#/WPF] ControlTemplate 엘리먼트 : ProgressBar 엘리먼트 정의하기 (0) | 2023.01.29 |
[C#/WPF] ControlTemplate 엘리먼트 : PasswordBox 엘리먼트 정의하기 (0) | 2023.01.28 |
[C#/WPF] ControlTemplate 엘리먼트 : NavigationWindow 엘리먼트 정의하기 (0) | 2023.01.28 |
댓글을 달아 주세요