#c# #wpf #image #margin
#c# #wpf #изображение #поля
Вопрос:
Когда я устанавливаю поле изображения во время выполнения, оно ведет себя странно, отличается от того, когда я устанавливаю его с помощью кода 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 — нет. Почему это происходит, когда я даю им одинаковые значения полей?
Комментарии:
1. Нам нужно больше, чем это. Изображения того, что вы хотите, и того, что вы получаете. Также: в чем заключается волшебство
proba.Width = 2245721 / 9525;
? Оно отсутствует в версии XAML…2. Исходное изображение такое же. Высота и ширина также не важны, я попытался установить ту же ширину и высь, но проблема остается.
Ответ №1:
Это потому, что вы не устанавливаете выравнивания по горизонтали и вертикали в C #.
Попробуйте добавить:
proba.VerticalAlignment = VerticalAlignment.Top;
proba.HorizontalAlignment = HorizontalAlignment.Left;
и это будет выглядеть так же.