我在我的C#程序中使用Helixtoolkit.WPF。我已經導入了NuGet軟件包,並且工作正常。但是,我想編輯其中一個文件,特別是GridLinesVisual.cs。我想改變該文件中的某個功能如何操作,但似乎無法使其工作。編輯Nuget包C#Helixtoolkit.WPF
我需要改變的功能開始上線247 protected override MeshGeometry3D Tessellate()
下面是我需要更新/更改文件的鏈接 https://searchcode.com/codesearch/view/10564811/
從我的程序調用代碼grid = new GridLinesVisual3D();
我不像C++那麼熟悉C#,但是我知道我不能創建一個子類來編輯這個函數。我認爲重寫是正確的做法,但我無法得到這個工作。 我創建了一個新的文件RectGrid.cs,這是我的代碼:
using HelixToolkit.Wpf;
using System.Windows;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Media3D;
namespace Axcro.Helix_Toolkit_Extentions
{
class RectGrid : GridLinesVisual3D
{
protected override MeshGeometry3D Tessellate()
{
this.lengthDirection = this.LengthDirection;
this.lengthDirection.Normalize();
this.widthDirection = Vector3D.CrossProduct(this.Normal, this.lengthDirection);
this.widthDirection.Normalize();
var mesh = new MeshBuilder(true, false);
double minX = -this.Width/2;
double minY = -this.Length/2;
double maxX = this.Width/2;
double maxY = this.Length/2;
double x = minX;
double eps = this.MinorDistance/10;
while (x <= maxX + eps)
{
double t = this.Thickness;
if (IsMultipleOf(x, this.MajorDistance))
{
t *= 2;
}
this.AddLineX(mesh, x, minY, maxY, t);
x += this.MinorDistance;
}
var m = mesh.ToMesh();
m.Freeze();
return m;
}
}
}
此代碼編譯就好了,但我要細化的變化沒有顯示出來。 正在使用重寫正確的方式來修改如何Tessellate函數或有更好/更簡單的方式來編輯它?
Tessellate函數的功能是在X和Y方向上創建網格線。我只想要Y方向的網格線,而不是X.所以基本上我不想要網格,我只想要線...
如果該函數是虛擬的,並且您正在調用此類的實例,則應該顯示您的更改。你如何實例化派生類以供使用?你確定它是你創建的版本嗎? –
Steve,我沒有調用類RectGrid,因爲Visual Studio說「類型或名稱空間無法找到」 我仍然使用grid = new GridLinesVisual3D(); – axcro