WPF UIElement Mouse -2-

索引サイト

マウス動作メモ




<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Wpf-Mouse-0010" Height="500" Width="750">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<ScrollViewer Name="scrollViewer1" Grid.RowSpan="2"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
MouseMove="scrollViewer1_MouseMove"
Background="Black">
<Viewbox x:Name="Viewbox_Cube10"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/interactivedesigner/2006"
xmlns:c="http://schemas.openxmlformats.org/markup-compatibility/2006"
c:Ignorable="d">
<Viewport3D x:Name="Viewport3D_Cube10" Width="500" Height="500">
<Viewport3D.Resources>
<ResourceDictionary>
<MaterialGroup x:Key="Material_Cube10_NoMaterial" >
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="#cccccc" Opacity="1"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
<Transform3DGroup x:Key="Transform_Character_Cube10_Character_0" >
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="0" Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
<Transform3DGroup x:Key="Transform_Model_Cube10_obj1" >
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
<ScaleTransform3D CenterX="0" CenterY="0" CenterZ="0" ScaleX="1" ScaleY="1" ScaleZ="1"/>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="{Binding ElementName=sliderX,Path=Value}" Axis="0 1 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<RotateTransform3D CenterX="0" CenterY="0" CenterZ="0">
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Angle="{Binding ElementName=sliderY,Path=Value}" Axis="1 0 0"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
<TranslateTransform3D OffsetX="0" OffsetY="0" OffsetZ="0"/>
</Transform3DGroup>
<MeshGeometry3D x:Key="Geometry_Cube10_obj1_0"
TriangleIndices="2,1,0 3,2,0 5,4,1 2,5,1 7,6,4 5,7,4 3,0,6 7,3,6 1,4,6 0,1,6 5,2,3 7,5,3 "
Positions="-100,100,100 100,100,100 100,-100,100 -100,-100,100 100,100,-100 100,-100,-100 -100,100,-100 -100,-100,-100 "
/>
</ResourceDictionary>
</Viewport3D.Resources>

<Viewport3D.Camera>
<PerspectiveCamera x:Name="Camera_Cube10"
Position="-244.763901,513.030212,1388.125000"
LookDirection="0.163176,-0.342020,-0.925416"
UpDirection="0,1,0"
FieldOfView="20"
NearPlaneDistance="1"
FarPlaneDistance="10000" />
</Viewport3D.Camera>

<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<AmbientLight Color="#646464" />
<DirectionalLight x:Name="Light_Cube10" Color="#FFFFFF" Direction="0.163176,-0.342020,-0.925416" />
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D x:Name="Character_Cube10_Character_0" Transform="{StaticResource Transform_Character_Cube10_Character_0}">
<ModelVisual3D.Content>
<Model3DGroup>
<Model3DGroup x:Name="Model_Cube10_obj1" Transform="{StaticResource Transform_Model_Cube10_obj1}">
<GeometryModel3D x:Name="Geometry_Model_Cube10_obj1_0" Geometry="{StaticResource Geometry_Cube10_obj1_0}" Material="{StaticResource Material_Cube10_NoMaterial}"/>
</Model3DGroup>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Viewbox>
</ScrollViewer>
<StackPanel Grid.Column="1" Name="stackPanel1">
<Slider Name="sliderX" Maximum="360" Value="180" />
<Slider Name="sliderY" Maximum="360" Value="180" />
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1" Name="stackPanel2">
<TextBox Background="Ivory" Height="30" Name="textBox1" />
<TextBox Background="Ivory" Height="30" Name="textBox2" />
</StackPanel>
</Grid>
</Window>




private void scrollViewer1_MouseMove(object sender, MouseEventArgs e)
{
UIElement z_uie = sender as UIElement;
Point z_point = e.GetPosition(z_uie);
textBox1.Text = "Mouse X: " + z_point.X;
textBox2.Text = "Mouse Y: " + z_point.Y;
sliderX.Value = sliderX.Maximum-(z_point.X / scrollViewer1.ViewportWidth * sliderX.Maximum);
sliderY.Value = z_point.Y / scrollViewer1.ViewportHeight * sliderY.Maximum;
}



AX