Я пытаюсь использовать стиль для повторного использования. Я видел статью следующим образом.
https://charlesk.tistory.com/66
В статье показано, как расширить элемент управления для использования существующего стиля.
Я стал Любопытно, как будет выглядеть структура стиля при создании нового элемента управления путем расширения существующего стиля.
Например, в статье определен HeaderedContentControl, который имеет ключ "Style_HeaderedContentControl", как показано ниже.
<Style x:Key="Style_HeaderedContentControl" TargetType="{x:Type HeaderedContentControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type HeaderedContentControl}">
<Border Background="WhiteSmoke"
BorderBrush="DarkGray"
BorderThickness="1"
Margin="5">
<StackPanel Background="WhiteSmoke"
Margin="5">
<ContentPresenter ContentSource="Header"
TextBlock.FontWeight="Bold"
Margin="0,0,0,5"/>
<ContentPresenter />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И создайте новый элемент управления, расширив вышеприведенный стиль, как показано ниже.
<HeaderedContentControl Header="재생" Grid.Column="1"
Style="{DynamicResource Style_HeaderedContentControl}">
<StackPanel>
<Button Content="시작"/>
<Button Content="정지"/>
</StackPanel>
</HeaderedContentControl>
Здесь мне интересно, какой должна быть структура HeaderedContentControl.
Кандидаты, которых я считаю:
<Border Background="WhiteSmoke"
BorderBrush="DarkGray"
BorderThickness="1"
Margin="5">
<StackPanel Background="WhiteSmoke"
Margin="5">
<ContentPresenter ContentSource="Header"
TextBlock.FontWeight="Bold"
Margin="0,0,0,5"/>
<StackPanel>
<Button Content="시작"/>
<Button Content="정지"/>
</StackPanel>
<ContentPresenter />
</StackPanel>
</Border>
или
<Border Background="WhiteSmoke"
BorderBrush="DarkGray"
BorderThickness="1"
Margin="5">
<StackPanel Background="WhiteSmoke"
Margin="5">
<ContentPresenter ContentSource="Header"
TextBlock.FontWeight="Bold"
Margin="0,0,0,5"/>
<ContentPresenter />
<StackPanel>
<Button Content="시작"/>
<Button Content="정지"/>
</StackPanel>
</StackPanel>
</Border>
или
<Border Background="WhiteSmoke"
BorderBrush="DarkGray"
BorderThickness="1"
Margin="5">
<StackPanel Background="WhiteSmoke"
Margin="5">
<ContentPresenter ContentSource="Header"
TextBlock.FontWeight="Bold"
Margin="0,0,0,5"/>
<ContentPresenter />
</StackPanel>
<StackPanel>
<Button Content="시작"/>
<Button Content="정지"/>
</StackPanel>
</Border>
Как правильно ответить? и не могли бы вы мне сказать, почему структура должна быть?
Спасибо за чтение.