在UWP中将C#代码转换为VB.NET [英] Translating C# code to VB.NET in UWP

查看:61
本文介绍了在UWP中将C#代码转换为VB.NET的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我正在尝试识别来自inkcanvas控件的手写内容。正如我之前所说,我正在将我的Windows手机应用程序翻译为UWP。现在我试图通过inkcanvas控件识别手写输入,这对我来说是一个新的控件。我在网上搜索了
,但只能获得C#代码。好吧,我是一个vb.net爱好者,这是我迄今为止所管理的......

< Page 
x:Class =" DigiKid .MainPage"
xmlns =" http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x =" http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local =" using:DigiKid"
xmlns:d =" http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc =" http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable =" d"宽度= QUOT; 552.845">

< Grid Background =" {ThemeResource ApplicationPageBackgroundThemeBrush}">
< Grid.RowDefinitions>
< RowDefinition Height =" Auto" />
< RowDefinition Height =" *" />
< /Grid.RowDefinitions>
< StackPanel x:Name =" HeaderPanel"
Orientation =" Horizo​​ntal"
Grid.Row =" 0">
< TextBlock x:Name =" Header"
Text =" Basic ink recognition sample"
Style =" {ThemeResource HeaderTextBlockStyle}"
Margin =" 10,0,0,0" />
<按钮x:名称="识别"
Content ="识别"
Margin =" 50,0,10,0" />
< / StackPanel>
< Grid Grid.Row =" 1">
< Grid.RowDefinitions>
< RowDefinition Height =" *" />
< RowDefinition Height =" Auto" />
< /Grid.RowDefinitions>
< InkCanvas x:Name =" inkCanvas"
Grid.Row =" 0" />
< TextBlock x:Name =" recognitionResult"
Grid.Row =" 1"
Margin =" 50,0,10,0" />
< / Grid>
< / Grid>
< / Page>


导入Windows.UI.Input.Inking.InkPresenter 
导入Windows.UI.Input.Inking .InkRecognizerContainer
导入Windows.UI.Input.Inking

'空白页项模板记录在https://go.microsoft.com/fwlink/?LinkId=402352&clcid= 0x409

'''< summary>
'''一个空页面,可以单独使用,也可以导航到Frame中。
'''< / summary>
Public NotInheritable Class MainPage
Inherits Page

Public Sub New()

'设计者需要此调用。
InitializeComponent()

'在InitializeComponent()调用后添加任何初始化。
inkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Touch或Windows.UI.Core.CoreInputDeviceTypes.Pen或Windows.UI.Core.CoreInputDeviceTypes.Mouse
End Sub

Private Async Sub RecognizeText()

Dim currentStrokes As IReadOnlyList(Of String)= inkCanvas.InkPresenter.StrokeContainer.GetStrokes()

if currentStrokes.Count> 0然后

Dim recognizerContainer As New Windows.UI.Input.Inking.InkRecognizerContainer
Dim recognitionResults = Await recognitionizerContainer.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer,InkRecognitionTarget.All)

如果recognitionResults.Count> 0然后
Dim MyString As String =""
Dim R
For Each R In recognitionResults
MyString = R.GetTextCandidates()[0]
Next

End if
End If
结束次级
结束等级

在"For Each"中部分,我收到一个错误,导致"[0]"的下划线。并说'标识符预期'。我正在翻译的C#代码可以在这里找到  http://liliankasem.com/2015/11/26/uwp-live-handwriting-recognition/


有人请帮我识别VB.NET中的手写或翻译代码。提前致谢。







解决方案

Hi Emmanuel Muema


您可以将"[0]"更改为"(0)"然后构建。它将成功构建。




最好的问候


罗伊&NBSP;


Hi,

I am trying to recognize handwriting from inkcanvas control. As I had said earlier, I am translating my windows phone app to UWP. Now I am trying to recognize handwriting input through inkcanvas control and it is a new control to me. I searched the internet intensively but can only get C# code. Well, I am a vb.net lover and this is what I have managed so far...

<Page
    x:Class="DigiKid.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:DigiKid"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" Width="552.845">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <StackPanel x:Name="HeaderPanel"
                Orientation="Horizontal"
                Grid.Row="0">
            <TextBlock x:Name="Header"
                   Text="Basic ink recognition sample"
                   Style="{ThemeResource HeaderTextBlockStyle}"
                   Margin="10,0,0,0" />
            <Button x:Name="recognize"
                Content="Recognize"
                Margin="50,0,10,0"/>
        </StackPanel>
        <Grid Grid.Row="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <InkCanvas x:Name="inkCanvas"
                   Grid.Row="0"/>
            <TextBlock x:Name="recognitionResult"
                   Grid.Row="1"
                   Margin="50,0,10,0"/>
        </Grid>
    </Grid>
</Page>

Imports Windows.UI.Input.Inking.InkPresenter
Imports Windows.UI.Input.Inking.InkRecognizerContainer
Imports Windows.UI.Input.Inking

' The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

''' <summary>
''' An empty page that can be used on its own or navigated to within a Frame.
''' </summary>
Public NotInheritable Class MainPage
    Inherits Page

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        inkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Touch Or Windows.UI.Core.CoreInputDeviceTypes.Pen Or Windows.UI.Core.CoreInputDeviceTypes.Mouse
    End Sub

    Private Async Sub RecognizeText()

        Dim currentStrokes As IReadOnlyList(Of String) = inkCanvas.InkPresenter.StrokeContainer.GetStrokes()

        If currentStrokes.Count > 0 Then

            Dim recognizerContainer As New Windows.UI.Input.Inking.InkRecognizerContainer
            Dim recognitionResults = Await recognizerContainer.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All)

            If recognitionResults.Count > 0 Then
                Dim MyString As String = ""
                Dim R
                For Each R In recognitionResults
                    MyString = R.GetTextCandidates()[0]
                Next

            End If
        End If
    End Sub
End Class

In the "For Each" part, I am getting an error which is causing underlining of "[0]" and says 'Identifier expected'. The C# code I am translating can be found here http://liliankasem.com/2015/11/26/uwp-live-handwriting-recognition/

Someone please help me in recognizing handwriting in VB.NET or translating the code. Thanks in advance.


解决方案

Hi Emmanuel Muema

You could change "[0]" to "(0)" then build. It will be build successfully.

Best Regards

Roy 


这篇关于在UWP中将C#代码转换为VB.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆