我正在创建一个WPF映射程序,它可能会在任何时候将数百个文件加载并绘制到屏幕上,用户可能想要缩放和平移此显示.其中一些文件类型可能包含数千个点,这些点很可能作为某种路径连接.其他支持的格式将包括TIFF文件.
具有单个DrawingVisual以获取所有数据的性能是否更好?或者我应该为每个加载的文件创建新的DrawingVisual?
如果有人可以就此提出任何建议,我将不胜感激.
我试图在我的程序中从头开始编写DBF文件.我想创建它,添加一些列,然后将数据添加到X列的次数.我的程序不需要再读它,但其他程序会.
我四处寻找解决方案,但似乎所有人都假设现有的DBF文件,而我想创建一个新文件.
这样做的目的是使DBF成为ESRI ShapeFile的一部分.
有谁知道如何做到这一点?
我有以下代码,它将OutOfMemoryException
在运行时生成:
public partial class MainWindow : Window
{
private DrawingVisual myVisual = new DrawingVisual();
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
myVisual = GetVisual();
graphicsCanvas.AddVisual(myVisual);
}
private void Graphics_Canvas_MouseMove(object sender, MouseEventArgs e)
{
//get the data visual:
DrawingVisual tempVisual = GetVisual();
//first clear the current display data:
graphicsCanvas.RemoveVisual(myVisual);
//get the data visual:
myVisual = tempVisual;
graphicsCanvas.AddVisual(myVisual);
//GC.Collect();
}
private DrawingVisual GetVisual()
{
double width = graphicsCanvas.ActualWidth;
double height = graphicsCanvas.ActualHeight;
DrawingVisual dV = …
Run Code Online (Sandbox Code Playgroud) 我最近在从 .NET Core 2.2 升级到 3.1 后遇到了这个有趣(令人沮丧)的问题。以前,我会将数据 POST 到 Web 应用程序,接收方法如下所示:
public IActionResult OnPostAddNewDataAsync([FromBody]MyClass data)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
哪里MyClass
可能是这样的:
public class MyClass
{
public string Field1 {get; set;}
public integer Value1 {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
(作为参考,要从 Javascript 访问端点,您可以这样做:
await PostDataAsync("AddNewData", {
"Field1": "Hello I am",
"Value1": 7
});
async function PostDataAsync(handler, data)
{
return await $.ajax({
url: window.location.pathname + "?handler=" + handler,
type: "POST",
contentType: "application/json",
headers:
{
RequestVerificationToken: $('input:hidden[name="__RequestVerificationToken"]').val()
},
data: JSON.stringify(data)
});
}
Run Code Online (Sandbox Code Playgroud)
我花了一段时间才弄明白!)。
这工作得很好。
更新 .NET …
我已经创建了一个程序来存储我的类型Project的任意数量的对象.然后每个项目包含任意数量的文件,这是我为该程序创建的另一个对象.
我遇到的问题出现在XAML中,有两个方面,但我认为它有类似的起源.
我有一个窗口,其中包含一个ListView,填充了所选项目中的文件.从这里我可以选中每个旁边的框以打开或关闭它们,如果我选择一个文件,它的相关信息将显示在此窗口的状态栏中.
如果我关闭文件,它的文本颜色应该在ListView中显示为浅灰色,但它不会自动执行此操作; 我必须关闭窗口并重新打开它.File实现了INotifyPropertyChanged,并在开/关状态发生变化时触发此事件.
我使用这个XAML代码,转换器在我的代码后面的类:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Foreground" Value="{Binding Path=IsVisible, Converter={StaticResource VisibleStateToFontColourConverter}}"/>
</Style>
</ListBox.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
同样对于选定的文件,如果文件中的信息在选择时发生变化(其他类可能导致发生),我希望状态栏自动更新以反映此更改,但它不会; 我必须点击其他内容,然后重新选择感兴趣的文件.我也为此实现并使用了INotifyPropertyChanged,因此我不知道为什么它不会自动更新.我的状态项的XAML代码如下:
<StatusBarItem Name="statusItem_FileInfo" Content="{Binding ElementName=loadedFiles_ListView, Path=SelectedItem, Converter={StaticResource GIS_FileToInfoConverter}}"/>
Run Code Online (Sandbox Code Playgroud)
有谁知道我错过了什么会把它们全部结合在一起?
我正在尝试读取包含以4字节IEEE float编码的数字的二进制文件.我是用.NET做的BinaryReader
,但我不确定如何正确读取数据.我当然确定这种ReadSingle()
方法不能给我正在寻找的价值.
有谁知道如何在.NET中这样做?
我已经为此苦苦挣扎多年了,因为我找不到任何详细的示例。
在我的应用程序中,我有一系列自定义数据,我想通过AirDrop发送给使用同一应用程序的另一个用户。
第一步是发送数据:
@IBAction func share_Button_Click(sender: UIBarButtonItem)
{
let dataToShare: NSData = getMyCustomNSData()
let controller = UIActivityViewController(activityItems: [dataToShare], applicationActivities: nil)
controller.excludedActivityTypes = [UIActivityTypePostToFacebook, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypePostToFlickr, UIActivityTypePostToTencentWeibo, UIActivityTypeMail, UIActivityTypeAddToReadingList, UIActivityTypeOpenInIBooks, UIActivityTypeMessage]
self.presentViewController(controller, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
这会将我的数据转换为NSData对象,用户获得了AirDrop共享选项,并且其中的数据转到了另一部手机。到目前为止,一切都很好...
但是其他用户的应用程序如何知道如何接收它?
我已经阅读了有关自定义UTI类型的信息,并声明了一个类型,但是老实说,我不知道在声明中要添加什么。以及如何向iOS指示您发送的数据符合此特定的UTI?
在线上到处都有AirDrop示例,但它们专注于共享常见类型(如图像),而我发现没有人通过详细共享自定义数据类型来工作。
有人可以帮忙吗?
在 Blazor WebAssembly 中考虑以下事项:
<span @onclick="Click" @ondblclick="DoubleClick">Click Me!</span>
@code {
private void Click()
{
Console.WriteLine("Click");
}
private void DoubleClick()
{
Console.WriteLine("Double-click");
}
}
Run Code Online (Sandbox Code Playgroud)
如果我双击该元素,我将在控制台中看到的是:
Click
Click
Double-click
Run Code Online (Sandbox Code Playgroud)
有没有办法接收双击事件而不触发 2 个单击事件?我想将这两个事件用于不同的目的,因此它们相互干扰。
任何建议都非常感激。
假设我已经在我的项目中制作了 Core Data 模型。我还有其他类的方法可以接受这些模型并根据它们的属性执行一些功能。我如何对这些类进行单元测试?
对于普通的 Swift 文件,我在 Xcode 中选择它们并勾选一个框,使这些文件中定义的任何类对项目的单元测试部分可见。我的问题本质上是,如何让我的 Core Data 模型也对测试可见?
请注意,我不想在 Core Data 堆栈上执行任何操作,我只想能够创建模型的实例并将其传递给方法。