将WPF项目从C#转换为VB.NET的问题

时间:2016-10-17 11:34:10

标签: c# .net wpf vb.net xaml

我在WPF世界中非常新,我想将C#项目翻译成VB.NET,因为它有许多我想要重用的功能。我正在使用VS 2013。 C#项目来自这个来源: https://github.com/Julien-Marcou/RadialMenu 这是一个CustomControl WPF项目。

我收到以下错误: 无法找到类型'控件:PieShape'。请注意,类型名称区分大小写。

我认为仍然是命名空间引用问题,但由于我使用了所有原始项目名称和命名空间,因此很奇怪 我需要你的帮助!

在C#(原创)和VB.NET(我的)项目中我们都有:
  - 1)项目属性:
装配名称:RadialMenu
根命名空间:RadialMenu
  - 2)Generic.xaml:
(用curlies代替标签......)

{ResourceDictionary   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"}
{ResourceDictionary.MergedDictionaries}
{ResourceDictionary Source="/RadialMenu;component/Themes/PieShape.xaml" /} -here is an error only in VB.NET project:
    **An error occurred while finding the resource dictionary "/RadialMenu;component/Themes/PieShape.xaml"**.
{ResourceDictionary Source="/RadialMenu;component/Themes/RadialMenu.xaml" /}
{ResourceDictionary Source="/RadialMenu;component/Themes/RadialMenuCentralItem.xaml" /}
                {ResourceDictionary Source="/RadialMenu;component/Themes/RadialMenuItem.xaml" /}
           {/ResourceDictionary.MergedDictionaries}

{/ResourceDictionary}
  • 3)PieShape.xaml :(用curlies代替标签......)

      {ResourceDictionary    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Controls="clr-namespace:RadialMenu.Controls"}
    {Style TargetType="Controls:PieShape" /} -here is an error only in VB.NET code:
    **Cannot find the type 'Controls:PieShape'. Note that type names are case sensitive.**
    {/ResourceDictionary}
     

PieShape.vb(代码)

    Imports System.Windows
    Imports System.Windows.Media
    Imports System.Windows.Shapes
    namespace RadialMenu.Controls
    Public Class PieShape
        Inherits Shape '...

PieShape.cs(代码)

 using System;
    using System.Windows;
    using System.Windows.Media;
    using System.Windows.Shapes;

    namespace RadialMenu.Controls
    {
    internal class PieShape : Shape
    {//...
  • 4) RadialMenu.xaml - 两个项目(用curlies代替标签......)

     
        {ResourceDictionary
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="clr-namespace:RadialMenu.Controls"}
    
    
    {Style TargetType="Controls:RadialMenu"} - here is an error only in vb.net
    **The name "RadialMenu" does not exist in the namespace "clr-namespace:RadialMenu.Controls"**.  
    
    ...

还有其他文件有错误(RadialMenuItem.xaml等),但由于它们使用PieShape.xaml,如果它在此文件中出错,则所有其他文件都有错误,所以这是正常的。

如何消除PieShape.xaml文件中的错误? 我在stackoverflow中找到了很多〜解决方法〜: - 重启项目 - 将x86替换为x64并返回x86。

Visual Basic.net中的命名空间有问题吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

解决: 我不得不替换命名空间名称

namespace RadialMenu.Controls

使用此名称

namespace Controls

我不知道它为什么会起作用......