Изменение изображения содержимого кнопки заставляет игнорировать любые ранее определенные свойства макета.Изменение содержимого кнопки удаляет стиль WPF
То, что я подозреваю, является тем фактом, что при изменении this.Content
в событии нажатия кнопки, он изменяет:
<Button>
Everything found between these tags.
</Button>
И как мой стиль внутри этих тегов, она перекрывает его.
Вот код для записи:
private void ChangeImageFile(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image Files|*.png;*.jpeg;*.tiff;*.gif;*.bmp;*.jpg";
ofd.FilterIndex = 1;
ofd.Multiselect = false;
bool? ok = ofd.ShowDialog();
if(ok == true)
{
Image loaded = new Image();
loaded.Source = new BitmapImage(new Uri(ofd.FileName));
loaded.Height = 100;
this.Content = loaded;
}
}
<Button x:Name="BookCover" Click="ChangeImageFile">
<Button.Content>
<Image Source="Images/NewBook.png"/>
</Button.Content>
<Button.Style>
<Style TargetType="{x:Type Button}">
... LONG STYLE ...
</Style>
</Button.Style>
</Button>
Когда вы пишете 'this.Content',' this' относится к чему? – user3185569
Как вы сказали, это относится к окну и потому, что страница находилась в разработке, в окне не было других элементов, из-за чего я не мог видеть, что изображение осталось единственным. Ваше решение работает. –