vb.net の温度ダイヤル用に Windows フォームでカスタム WPF コントロールを作成しています。ElementHostを使用して Windows フォームに WPF コントロールを追加しようとすると、「タイプにデフォルトのコンストラクターがあることを確認してください」というエラー メッセージが表示されます。はいWindowsFormsIntegration.dll
、プロジェクトの参照に追加しました。
カスタム コントロールの VB コード
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Drawing
Imports System.Windows.Forms
Imports System.ComponentModel
Imports System.Windows.Forms.UserControl
Imports System.Windows.Media.Animation
Imports System.Windows.Forms.Integration
Namespace CSV_FILE
Public Class Temperature_Dial
Inherits System.Windows.Forms.UserControl
Public pointervalue As Double
Private arrowPointer As System.Windows.Shapes.Rectangle
Public Sub Temperature_Dial()
InitializeComponent()
End Sub
Public Sub InitializeComponent()
' Throw New NotImplementedException()
End Sub
Public Sub changevalue()
Dim rotate As RotateTransform = New RotateTransform(pointervalue)
arrowPointer.RenderTransform = rotate
End Sub
End Class
End Namespace
XML コード
<UserControl x:Class="Temperature_Dial"
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:local="clr-namespace:CSV_FILE"
mc:Ignorable="d" Width="368.545" Height="463.273">
<Grid x:Name="Dial" Margin="-13,-66,0,-50" HorizontalAlignment="Left" Width="379">
<Grid.Background>
<ImageBrush ImageSource="Temp_gauge_without_needles.png" Stretch="UniformToFill"/>
</Grid.Background>
<Rectangle x:Name="Value" HorizontalAlignment="Left" Height="197" Margin="90,144,0,0" VerticalAlignment="Top" Width="217">
<Rectangle.Fill>
<ImageBrush ImageSource="dial_values.png" Stretch="UniformToFill"/>
</Rectangle.Fill>
</Rectangle>
<Rectangle x:Name="arrowPointer" HorizontalAlignment="Left" Height="34" Margin="87,242,0,0" VerticalAlignment="Top" Width="149" RenderTransformOrigin="0.77,0.48">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="2612.226"/>
<TranslateTransform X="-3.86853" Y="-0.314352"/>
</TransformGroup>
</Rectangle.RenderTransform>
<Rectangle.Fill>
<ImageBrush ImageSource="NEEDLE.png" Stretch="UniformToFill"/>
</Rectangle.Fill>
</Rectangle>
</Grid>
</UserControl>
エラーを解決するのを手伝ってください。
前もって感謝します