пытаюсь задать поворот элементов CarouselPanel в стиле (для начала как статический, но в идеале бы угол поворота динамический, касательной к траектории движения каждого элемента) таким образом:
<dxca:CarouselPanel x:Name="myCarousel" >
<dxca:CarouselPanel.Resources>
<Style TargetType="{x:Type Rectangle}"
BasedOn="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dxca:CarouselPanel}, ResourceId=advancedCarouselItemStyle}}" >
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="30" />
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Ellipse}"
BasedOn="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dxca:CarouselPanel}, ResourceId=advancedCarouselItemStyle}}">
<Setter Property="Opacity" Value="1" />
</Style>
</dxca:CarouselPanel.Resources>
<dxca:CarouselPanel.ItemMovingPath>
<PathGeometry>
<PathFigure IsClosed="False" StartPoint="0,0">
<!--простая дуга из левого верхнего в правый нижний угол -->
<ArcSegment Point="100,100" Size="100,100" />
</PathFigure>
</PathGeometry>
</dxca:CarouselPanel.ItemMovingPath>
<Rectangle Fill="Blue" />
<Rectangle Fill="Green" />
<Rectangle Fill="Yellow" />
<Rectangle Fill="Purple" />
<Rectangle Fill="Orange" />
<Rectangle Fill="Red" />
<Ellipse Fill="DarkRed" />
</dxca:CarouselPanel>
в итоге просто элементы типа прямоугольник поворачиваются на ожидаемый угол 30 градусов, но перестают двигаться вообще (!) и застывают в левом верхнем углу карусели. Что я делаю не так?
(Всем откликнувшимся -- вы очень помогли, спасибище прост)
Расположение объектов карусели с динамическим их поворотом вдоль касательной к текущей точке траектории сделал достаточно просто, следующим образом:
<dxca:CarouselPanel x:Name="myCarousel" Margin="10,10,10,0" Grid.Row="0"
ClipToBounds="True"
AnimationTime="1000"
VisibleItemCount="10"
AttractorPointIndex="0"
PathSizingMode="Stretch"
PathVisible="True"
PathPadding="10,10,10,10"
IsInvertedDirection="True"
IsAutoSizeItem="True"
IsRepeat="False"
IsManipulationEnabled="False"
IsEnabled="True"
ItemSize="30,30"
SnapItemsToDevicePixels="True"
>
<dxca:CarouselPanel.Resources>
<!--тут абсолютно одинаковые стили для каждого типа объекта содержимого карусели-->
<Style TargetType="{x:Type Rectangle}"
BasedOn="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dxca:CarouselPanel}, ResourceId=advancedCarouselItemStyle}}" >
<Setter Property="Opacity" Value="1" />
<Setter Property="RenderTransformOrigin" Value="0.5, 0.5" />
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="{Binding Path=(dxca:CarouselPanel.Parameters).Angle, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type FrameworkElement}}}" />
<TranslateTransform
X="{Binding Path=(dxca:CarouselPanel.Parameters).OffsetX, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UIElement}}}"
Y="{Binding Path=(dxca:CarouselPanel.Parameters).OffsetY, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UIElement}}}"
/>
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Ellipse}"
BasedOn="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dxca:CarouselPanel}, ResourceId=advancedCarouselItemStyle}}" >
<Setter Property="Opacity" Value="1" />
<Setter Property="RenderTransformOrigin" Value="0.5, 0.5" />
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="{Binding Path=(dxca:CarouselPanel.Parameters).Angle, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type FrameworkElement}} }" />
<TranslateTransform
X="{Binding Path=(dxca:CarouselPanel.Parameters).OffsetX, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UIElement}}}"
Y="{Binding Path=(dxca:CarouselPanel.Parameters).OffsetY, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UIElement}}}" />
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
</dxca:CarouselPanel.Resources>
<dxca:CarouselPanel.ParameterSet>
<dxca:ParameterCollection>
<dxca:Parameter Name="Angle" >
<dxca:Parameter.DistributionFunction>
<dxca:PieceLinearFunction>
<dxca:PieceLinearFunction.Points>
<dxca:PointCollection> <!-- X=часть_пути Y=угол_в_градусах(+/-)_по_часовой_стрелке -->
<Point X="0" Y="0" />
<Point X="1" Y="90" />
</dxca:PointCollection>
</dxca:PieceLinearFunction.Points>
</dxca:PieceLinearFunction>
</dxca:Parameter.DistributionFunction>
</dxca:Parameter>
</dxca:ParameterCollection>
</dxca:CarouselPanel.ParameterSet>
<dxca:CarouselPanel.ItemMovingPath>
<PathGeometry>
<!--путь: простая дуга из левого верхнего в правый нижний угол -->
<PathFigure IsClosed="False" StartPoint="0,0">
<ArcSegment Point="100,100" Size="100,100" />
</PathFigure>
</PathGeometry>
</dxca:CarouselPanel.ItemMovingPath>
<Rectangle Fill="LightCyan" />
<Rectangle Fill="Blue"/>
<Rectangle Fill="Green"/>
<Rectangle Fill="Yellow"/>
<Rectangle Fill="Purple"/>
<Rectangle Fill="Orange"/>
<Rectangle Fill="Red" Width="20" Height="50"/>
<Ellipse Fill="DarkRed" Width="50" Height="50" />
</dxca:CarouselPanel>
причём угол поворота (по содержимому кусочно-линейной функции <dxca:PieceLinearFunction>
) согласуется с траекторией (<dxca:CarouselPanel.ItemMovingPath>
) вручную в XAML-коде.
Виртуальный выделенный сервер (VDS) становится отличным выбором
я написал простой скрипт который вносит ip клиента в БД но мне захотелось переписать его в ооп стиле
при выставлении атрибуту PDO::ATTR_EMULATE_PREPARES значения FALSE, возникает ошибка:
Проблема такая, есть многомерный массив, с двумя ключами AUTHORS и BOOKS, в этих ключах еще вложены массивы, ключами для авторов являются их емэйлы...
У меня есть две таблицы в БДМне нужно во второй таблице в поле routes_route_id сослаться на поле route_id в первой таблице, но я не могу указать связь...