Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ContentPresenter未正确放置外出_C#_Xaml_Windows Runtime_Windows 8.1 - Fatal编程技术网

C# ContentPresenter未正确放置外出

C# ContentPresenter未正确放置外出,c#,xaml,windows-runtime,windows-8.1,C#,Xaml,Windows Runtime,Windows 8.1,我正在开发一个通用应用程序(XAML和C#的组合),我已经创建了一个自定义控件,它应该像一种卡片视图。翻转卡片会显示其他内容。为此,我使用两个ContentPresenter和一些动画(视觉状态)在需要时旋转ContentPresenter,以便始终只有一个可见 动画工作正常,但是,我有一个布局问题,ContentPresenter的DataTemplate中的TextBlock没有延伸到控件的整个宽度。试图通过创建一个单独的ContentPresenter并添加完全相同的内容来重现这种行为,效

我正在开发一个通用应用程序(XAML和C#的组合),我已经创建了一个自定义控件,它应该像一种卡片视图。翻转卡片会显示其他内容。为此,我使用两个ContentPresenter和一些动画(视觉状态)在需要时旋转ContentPresenter,以便始终只有一个可见

动画工作正常,但是,我有一个布局问题,ContentPresenter的DataTemplate中的TextBlock没有延伸到控件的整个宽度。试图通过创建一个单独的ContentPresenter并添加完全相同的内容来重现这种行为,效果很好。这一定是我的控制风格中的一些错误,但我不知道我做错了什么

你可以看到我在下面使用的样式(为了澄清,我省略了视觉状态,因为我认为这不是重点。)


全局用户界面
...
...
如果有人能帮我,我将非常感激!谢谢!:)
PS:如果您想查看实际问题,可以在此处下载一个示例项目:

我不知道它背后的逻辑,但我看不到覆盖
度量值覆盖的原因


只需注释掉整个
受保护的覆盖尺寸测量值override(可用尺寸大小)
就可以了。

谢谢!这就成功了。重写它背后的逻辑是因为只有一侧可见,而另一侧可能比当前一侧大。因此控件应该“保留”足够的空间。然而,有了它的评论,它仍然可以正常工作!非常感谢。不幸的是,我似乎还不能给你投票:(不用担心。你在那里创建了一个很好的控件!:)计划在它完全完成后写博客;)
<Style TargetType="controls:FlipCard">
    <Setter Property="Padding" Value="0" />
    <Setter Property="Margin" Value="0" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="controls:FlipCard">
                <Grid x:Name="Root" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <Grid x:Name="FrontContainer" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                        <Grid.Projection>
                            <PlaneProjection RotationX="0" RotationY="0" />
                        </Grid.Projection>
                        <ContentPresenter x:Name="Front" ContentTemplate="{TemplateBinding Front}" FontWeight="Light" />
                    </Grid>
                    <Grid x:Name="BackContainer" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                        <Grid.Projection>
                            <PlaneProjection RotationX="0" RotationY="0" />
                        </Grid.Projection>
                        <ContentPresenter x:Name="Back" ContentTemplate="{TemplateBinding Back}" />
                    </Grid>

                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup>
                            <!-- Rotate around X-axis -->
                            <VisualState x:Name="FlipForwardShowBack">
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationX)" Storyboard.TargetName="FrontContainer">
                                        <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="90"/>
                                        <SplineDoubleKeyFrame KeyTime="0:0:0.8" Value="90"/>
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationX)" Storyboard.TargetName="BackContainer">
                                        <SplineDoubleKeyFrame KeyTime="0" Value="-90"/>
                                        <SplineDoubleKeyFrame KeyTime="0:0:0.4" Value="-90"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="0"/>
                                    </DoubleAnimationUsingKeyFrames>

                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.FontFamily)" Storyboard.TargetName="Front">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <FontFamily>Global User Interface</FontFamily>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="FlipForwardShowFront">
                                ...
                            </VisualState>

                            ...
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>