イメージを表示するカスタムのUserControlがあります。私はこのユーザーコントロール をMainWindowに使用しようとしています。何らかの理由でイメージが内容を埋めることはありません。 そして、私は理由を理解できません。 キャンバス内のキャンバスがWPFの親を埋めるのはなぜですか?
この
は、カスタムユーザーコントロールです:<UserControl x:Class="BookWriter3D.Sheet"
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"
mc:Ignorable="d"
FlowDirection="RightToLeft">
<Canvas RenderTransformOrigin="0.0,0.0">
<Canvas.RenderTransform>
<RotateTransform x:Name="Angle"/>
</Canvas.RenderTransform>
<Canvas x:Name="LayoutRoot">
<Canvas.Clip>
<RectangleGeometry x:Name="imgRect" Rect="0,0,1500,800"/>
</Canvas.Clip>
<Image x:Name="sheetImage" Source="C:\Users\Eric\Documents\Papa\BookWriter3D\Resources\Images\Page0.jpg" Stretch="Fill"/>
<Image x:Name="shadowSpine" Source="C:\Users\Eric\Documents\Papa\BookWriter3D\Resources\Images\shadowspine.png" Canvas.Left="899" Canvas.Top="0"/>
<Image x:Name="curlShadow" Opacity="0.0" Source="C:\Users\Eric\Documents\Papa\BookWriter3D\Resources\Images\curlshadow.png" Canvas.Top="0" Stretch="Fill"
RenderTransformOrigin="1.0,0.66">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="curlShadowScale" ScaleX="1.0" ScaleY="2.0"/>
<RotateTransform x:Name="curlShadowRotate" Angle="0"/>
<TranslateTransform x:Name="curlShadowTranslate" X="0" Y="0"/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</Canvas>
</Canvas>
そして、これはMainWindow.xamlです:
<Canvas x:Name="layoutRoot" Background="White" RenderTransformOrigin=".5,.5">
<Canvas.RenderTransform>
<ScaleTransform ScaleX="1.0" ScaleY="1.0"/>
</Canvas.RenderTransform>
<local:Sheet x:Name="Page1Sheet"></local:Sheet>
<Canvas x:Name="traca" >
<Canvas x:Name="catrabs" Canvas.Top="0">
<Canvas.Clip >
<PathGeometry x:Name="baclpth" >
<PathGeometry.Figures >
<PathFigure IsClosed="True" x:Name="baclpz" StartPoint="0,0">
<PathFigure.Segments>
<LineSegment x:Name="baclzz" Point="400,0"/>
<LineSegment x:Name="baclzyy" Point="400,400"/>
<LineSegment x:Name="baclzyrq" Point="0,300" />
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Canvas.Clip>
<local:Sheet x:Name="Page1TraceSheet" X="0" Y="625"/>
</Canvas>
このコードは、私はそれがこの問題上の任意のinfluenseを持って疑うものの、引き続き。
助けが必要ですか?
EDIT: outerWrapper Canvasが画面を塗りつぶしてしまったがLayoutRootが親を埋めることがわかったが、イメージと同じサイズなので、最初は問題が異なる
EDIT 2: 問題を解決しました。 Canvasは内容に応じてサイズを変更しますので、 私は、画像の幅と高さを設定するだけです。完全に機能しました。
どちらの画像ですか?あなたはそれらの3つを持っています! – jv42
申し訳ありませんが、page0.jpgですが、そのすべてが別のものです。コンテナ自体が画面を満たしていない可能性がありますか? –
非常に便利なテクニックは、異なる容器の背景色を半透明で非常に異なったものに設定することです。 – jv42