0

我有一个 WPF 模板,但在启动应用程序时它没有显示。WPF 中没有错误,任何地方都没有。只是没有使用模板。如何找出问题所在?

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="MoveThumb.xaml"/>
    <ResourceDictionary Source="ResizeDecorator.xaml"/>
    <ResourceDictionary Source="RotateDecorator.xaml"/>
</ResourceDictionary.MergedDictionaries>

<!-- ContentControl style to move, resize and rotate items -->
<Style x:Key="DesignerItemStyle" TargetType="ContentControl">
    <Setter Property="MinHeight" Value="50"/>
    <Setter Property="MinWidth" Value="50"/>
    <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ContentControl">
                <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
                    <Control Name="RotateDecorator"
                 Template="{StaticResource RotateDecoratorTemplate}"
                 Visibility="Collapsed"/>
                    <s:MoveThumb Template="{StaticResource MoveThumbTemplate}"
                     Cursor="SizeAll"/>
                    <Control x:Name="ResizeDecorator"
                 Template="{StaticResource ResizeDecoratorTemplate}"
                 Visibility="Collapsed"/>
                    <ContentPresenter Content="{TemplateBinding ContentControl.Content}"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="Selector.IsSelected" Value="True">
                        <Setter TargetName="ResizeDecorator" Property="Visibility" Value="Visible"/>
                        <Setter TargetName="RotateDecorator" Property="Visibility" Value="Visible"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<!-- RotateDecorator Template -->
<ControlTemplate x:Key="RotateDecoratorTemplate" TargetType="Control">
    <Grid>
        <my:RotateThumb Margin="-18,-18,0,0" VerticalAlignment="Top" HorizontalAlignment="Left"/>
        <my:RotateThumb Margin="0,-18,-18,0" VerticalAlignment="Top" HorizontalAlignment="Right">
            <my:RotateThumb.RenderTransform>
                <RotateTransform Angle="90" />
            </my:RotateThumb.RenderTransform>
        </my:RotateThumb>
        <my:RotateThumb Margin="0,0,-18,-18" VerticalAlignment="Bottom" HorizontalAlignment="Right">
            <my:RotateThumb.RenderTransform>
                <RotateTransform Angle="180" />
            </my:RotateThumb.RenderTransform>
        </my:RotateThumb>
        <my:RotateThumb Margin="-18,0,0,-18" VerticalAlignment="Bottom" HorizontalAlignment="Left">
            <my:RotateThumb.RenderTransform>
                <RotateTransform Angle="270" />
            </my:RotateThumb.RenderTransform>
        </my:RotateThumb>
    </Grid>
</ControlTemplate>

4

1 回答 1

1

尝试重新排序字典和模板,看看它是否有效,

都是关于ORDER的,因为即使您没有针对相同的 UIElement ,最后一个字典有时也会覆盖他以前的字典(模板)!

于 2012-12-21T17:13:32.410 回答