これが簡単な質問である場合は申し訳ありませんが、私はこれを一日中機能させようとしてきましたが、おそらくかなり明白なことを理解できないようです.
カスタム依存関係プロパティ "Flipped" を持つユーザー コントロールがあります。
私のリソースには、2 つのトリガーが定義された Style があり、「Flipped」が true か false かに応じて、コントロールのテンプレートを 2 つの異なる値に設定します。
では、作成中のこのユーザー コントロールにスタイルを適用するには、どの構文を使用すればよいでしょうか。
Style="{StaticResource EventStyle}"
のヘッダーを挿入しても機能しませUserControl
ん。
これが私がこれまでに持っているものです:
<UserControl x:Class="XDPClient.Controls.EventMarkerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:Controls="clr-namespace:XDPClient.Controls"
mc:Ignorable="d"
d:DesignHeight="513" d:DesignWidth="695">
<UserControl.Resources>
<!-- Draw the user control right side up with this template -->
<ControlTemplate x:Key="Up" TargetType="{x:Type Controls:EventMarkerControl}">
<Grid>
<!-- Outline grid -->
<Path Stretch="Fill" Fill="#FFFFFFFF" Stroke="#FF6800FF" StrokeThickness="3" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat" StrokeLineJoin="Miter" StrokeMiterLimit="4" Name="rect2985" RenderTransformOrigin="0,0">
<Path.Data>
<PathGeometry FillRule="Nonzero" Figures="M 0,250 L 0,50 L 150,50 L 200,-0.96 L 250,50 L 400,50 L 400,250 L 0,250z" />
</Path.Data>
</Path>
<!-- Placement of the content -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="4*" />
</Grid.RowDefinitions>
<Grid Grid.Row="1" Margin="3">
<ContentPresenter Grid.Row="1"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</Grid>
<Grid.BitmapEffect>
<DropShadowBitmapEffect />
</Grid.BitmapEffect>
</Grid>
</ControlTemplate>
<!-- Draw the user control flipped with this template -->
<ControlTemplate x:Key="Down" TargetType="{x:Type Controls:EventMarkerControl}">
<Grid>
<!-- Outline grid -->
<Path Stretch="Fill" Fill="#FFFFFFFF" Stroke="#FF6800FF" StrokeThickness="3" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat" StrokeLineJoin="Miter" StrokeMiterLimit="4" Name="rect2985" RenderTransformOrigin="0,0">
<Path.Data>
<PathGeometry FillRule="Nonzero" Figures="M 0,250 L 0,50 L 150,50 L 200,-0.96 L 250,50 L 400,50 L 400,250 L 0,250z" />
</Path.Data>
<Path.RenderTransform>
<ScaleTransform ScaleX="-1" />
</Path.RenderTransform>
</Path>
<!-- Placement of the content -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="4*" />
</Grid.RowDefinitions>
<Grid Grid.Row="1" Margin="3">
<ContentPresenter Grid.Row="1"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</Grid>
<Grid.BitmapEffect>
<DropShadowBitmapEffect />
</Grid.BitmapEffect>
</Grid>
</ControlTemplate>
<Style x:Key="EventStyle" TargetType="{x:Type Controls:EventMarkerControl}">
<Style.Triggers>
<Trigger Property="Flipped" Value="false">
<Setter Property="Template" Value="{StaticResource Up}" />
</Trigger>
<Trigger Property="Flipped" Value="true">
<Setter Property="Template" Value="{StaticResource Down}" />
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>