2011-11-10 15 views
1

イメージマージンを実行時に設定すると、xamlコードを使ってイメージマージンを設定すると、イメージマージンが変わってしまいます。イメージマージンの振る舞い

私は余白の値を(40,16,0,0)にします。

私は、実行時にそれを追加すると、私のコードはこれです:

 System.Windows.Controls.Image proba = new System.Windows.Controls.Image(); 
     ImageSource imageSource = GetSlidePart(PresentationDocument.Open(path, false), 0, "rId2"); 
     proba.Source = imageSource; 
     proba.Width = 2245721/9525; 
     proba.Height = 2286004/9525; 
     proba.Margin = new Thickness(40, 16, 0, 0); 
     gridName.Children.Add(proba); 

しかし、私は、XAMLで画像を追加するとき、CSでのコードはこれです:

 image1.Source = GetSlidePart(PresentationDocument.Open(path, false), 0, "rId2"); 

とXAMLのコードは以下です:

<Window x:Class="GetInfoFromPptxFile.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="720" Width="960"> 

<Grid Name="gridName"> 
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="416,20,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> 
    <Image Height="150" HorizontalAlignment="Left" Margin="40,16,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="200" /> 
</Grid> 
</Window> 

私は私のプログラムを実行すると、画像1は、私はそれになりたい場所を正確で、かつprobaという名前のイメージではありません。なぜ私は彼らに同じマージン値を与えるのですか?

+0

これ以上必要です。あなたが欲しいものと取得するものの画像。また、魔法の 'proba.Width = 2245721/9525;は何ですか? XAMLバージョンにはありません。 –

+0

ソースイメージは同じです。高さと幅は重要ではない、私は同じ幅と高さを設定しようとしたが、問題は残っている。 –

答えて

4

これは、C#で水平と垂直の配置を設定していないためです。追加

試してみてください。

proba.VerticalAlignment = VerticalAlignment.Top; 
proba.HorizontalAlignment = HorizontalAlignment.Left; 

と、それは同じように見えます。

+0

それはそれでした!ありがとうございました :) –