Поискал по сайту и ответа на мой вопрос я не нашел, поэтому решил создать новую тему. У меня есть полноэкранный Grid в котором находится usercontrol перемещаемый с помощью TranslateTransform
. Все бы нечего если бы usercontrol успевал отрисовываться при перемещении... в итоге получается эффект как в старых ОС с тенью от мышки. Grid с WebControl идет четко за мышкой а позади рывками перемещается само окно...
Единственным выходом я вижу затормозить всего usercontrol'a до полной отрисовки. Так как делается в играх... Там окна перетаскиваются не точно за мышкой а с небольшим торможением. (Это не сильно затормозит перемещение но без него очень режет глаз отстающий рендер контола.)
Была идея занесение каждого тика перемещения в коллекцию из которой весь список будет обрабатываться так чтобы успевал все отрендерить. Или вообще переделать как-то способ перетаскивания окна...
привожу пример XAML разметки и событий по перемещению.
<UserControl x:Name="Browser" x:Class="ELUM.UI.Controls.ELUMBrowser"
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"
xmlns:eo = "http://schemas.essentialobjects.com/wpf/"
xmlns:local="clr-namespace:ELUM.UI.Controls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" HorizontalAlignment="Left" VerticalAlignment="Top" Width="800" Height="450">
<UserControl.RenderTransform>
<TranslateTransform x:Name="timer_tt"/>
</UserControl.RenderTransform>
<Grid x:Name="browser" Background="#FF18191D">
<Grid x:Name="TopViev" Background="#FF3A4047" Height="50" VerticalAlignment="Top" MouseLeftButtonDown="Browser_MouseLeftButtonDown" MouseLeftButtonUp="Browser_MouseLeftButtonUp" MouseMove="Browser_MouseMove"/>
<Grid Margin="3,50,3,3">
<eo:WebControl x:Name="WebControl" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" >
<eo:WebControl.RenderTransform>
<TranslateTransform x:Name="EOWebControl"/>
</eo:WebControl.RenderTransform>
<eo:WebControl.WebView >
<eo:WebView x:Name="WebView" Url = "vk.com" >
</eo:WebView >
</eo:WebControl.WebView >
</eo:WebControl >
</Grid>
</Grid>
</UserControl>
static Vector m_startOffset_timer;
Point m_start;
private void Browser_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
m_start = e.GetPosition((this.Parent as Grid));
m_startOffset_timer = new Vector(timer_tt.X, timer_tt.Y);
TopViev.CaptureMouse();
}
private void Browser_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
TopViev.ReleaseMouseCapture();
}
private void Browser_MouseMove(object sender, MouseEventArgs e)
{
if (TopViev.IsMouseCaptured)
{
Vector offset = Point.Subtract(e.GetPosition((this.Parent as Grid)), m_start);
timer_tt.X = m_startOffset_timer.X + offset.X;
timer_tt.Y = m_startOffset_timer.Y + offset.Y;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хочу вывести все изображения которые были добавлены, но сейчас отображается только одно'sertificates_gallery' - ID галереи из Advanced Custom Fields
Не появляется кнопка "Ответить на комментарий" в WordPressПробовала различные варианты, сейчас код выглядит так, в functions