На WPF-форме лежат кнопка и под ней WebBrowser. Необходимо, чтобы после щелчка по кнопке у WebBrowser-а верхняя граница плавно съезжала бы вниз на определённое кол-во пикселей. Я сделал так, что в обработчике щелчка по кнопке запускается её анимированное увеличение. Но этот вариант не работает, т. е. кнопка масштабируется, но верхняя граница WebBrowser-а остаётся на месте. Почему?
XAML
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Storyboard x:Key="ScaleBrowserUpToDown" TargetName="BrowserUpDownMover">
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleY)"
Duration="0:0:0.6" From="1" To="4" />
</Storyboard>
<Storyboard x:Key="ScaleBrowserDownToUp" TargetName="BrowserUpDownMover">
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.(ScaleTransform.ScaleY)"
Duration="0:0:0.6" From="4" To="1"/>
</Storyboard>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Button Grid.Row="0" Name="BrowserUpDownMover" Height="20" Click="BrowserUpDownMover_Click">
<Button.RenderTransform>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</Button.RenderTransform>
</Button>
<WebBrowser Grid.Row="1" Name="ContentViewBrowser" Source="C:\Temp\Error.html">
<WebBrowser.RenderTransform>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</WebBrowser.RenderTransform>
</WebBrowser>
</Grid>
</Window>
C#
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
namespace WpfApplication2
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void BrowserUpDownMover_Click(object sender, RoutedEventArgs e)
{
ScaleTransform trans = BrowserUpDownMover.RenderTransform as ScaleTransform;
if (trans != null && trans.ScaleY > 1)
BrowserUpDownMover.BeginStoryboard((Storyboard)this.Resources["ScaleBrowserDownToUp"]);
else
BrowserUpDownMover.BeginStoryboard((Storyboard)this.Resources["ScaleBrowserUpToDown"]);
}
}
}