小编Ale*_*bin的帖子

.NET中是否存在与UI无关的Point结构?

我知道有几家Point在.NET结构:System.Drawing.Point,System.Windows.Point,Sys.UI.Point,但所有的人都在高层次的UI库(GDI +,WPF,AJAX).我需要Point在我的类库中进行计算的结构,我不想将其与任何特定的UI技术联系起来.Point.NET中是否有任何与UI无关的结构?或者我需要自己创建它?我知道,这很简单,但听起来像重新发明轮子.

.net c# vb.net struct

32
推荐指数
2
解决办法
2635
查看次数

Git合并时不包括从一个分支到另一个分支的提交

在开发过程中,我经常需要提交并推送"中间"提交,即提交代码不可编译或更改内容等等.我不想做这样的提交,但这是继续我的工作所必需的从办公室到家,有时为其他开发人员提供他们可以开始工作的基础.

我以为我找到了解决这个问题的方法:

  1. 我创建一个单独的"dev"分支并进行所有中间提交.

  2. 一旦代码处于良好状态,请进行合并以掌握.因此,master不会包含"中间"提交,只会包含"正常"提交.

  3. 删除所有中间提交的"dev"分支.

但这不起作用.当我进行合并时,不仅包括合并提交到master,还包括来自"dev"分支的所有"中间"提交.所以删除"dev"分支什么都没有,它的"中间"提交就在那里.

所以问题是:是否有可能以master只包含自己的提交+合并提交的方式进行合并,而不包括第二个分支的提交?如果这是不可能的,你能否告诉我如何实现我的目标 - 能够临时保存中间结果,还能在以后无缝删除它们?

git

15
推荐指数
1
解决办法
6775
查看次数

MahApps.Metro无法找到资源

我正在尝试使用MahApps.Metro创建新的WPF应用程序.我完全按照快速入门指南(http://mahapps.com/MahApps.Metro/guides/quick-start.html)中的描述进行操作:

  • 将Nuget的MahApps.Metro包添加到项目中.
  • 添加xmlns命名空间并用MetroWindow替换Window.

此时我可以运行应用程序,但窗口是透明的.标题栏文本和按钮是可见的(按钮未设置样式),但背景是透明的.

  • 为Window添加合并的词典代码.

之后我在启动时收到一个例外:

System.IOException
{"Cannot locate resource 'styles/colours.xaml'."}
Run Code Online (Sandbox Code Playgroud)

似乎由于某种原因它无法在程序集中找到资源.但我不明白为什么.

c# wpf mahapps.metro

9
推荐指数
1
解决办法
4892
查看次数

在运行其余方法之前更新UI

我有一个长时间运行的操作,必须在UI线程中完成(涉及无法冻结的UI元素).我想在运行操作之前显示忙指示符.

busyIndicator.Visibility = Visibility.Visible;
LongRunningMethod();
busyIndicator.Visibility = Visibility.Collapsed;
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为在操作完成之前不会进行渲染.我试图使用Task.Yield()以异步方式运行其余的方法:

busyIndicator.Visibility = Visibility.Visible;
await Task.Yield();
LongRunningMethod();
Run Code Online (Sandbox Code Playgroud)

据我所知,这也不起作用,因为该方法的其余部分优先于渲染操作.

我怎么能用TPL做到这一点?

UPD: LongRunningMethod不能在单独的线程中运行(与复杂的WPF 3D模型一起使用),无论如何我现在无法承担更改.因此,请不要提供基于在单独的线程上完全或部分运行它的解决方案.

c# task task-parallel-library async-await

7
推荐指数
1
解决办法
1969
查看次数

Visual Studio 2013 git客户端 - 强制推送

是否有可能从Visual Studio 2013内置的git客户端强制推送?

我知道这可以通过命令行,但我感兴趣,如果有这样的选项UI.

git git-push team-explorer visual-studio-2013

6
推荐指数
1
解决办法
2191
查看次数

安装ASP.NET Identity 2示例时出错

我正在尝试安装ASP.NET Identity 2示例项目.我打开Visual Studio 2013,创建一个空的ASP.NET项目,打开包管理器控制台并键入:

Install-Package Microsoft.AspNet.Identity.Samples -Pre
Run Code Online (Sandbox Code Playgroud)

安装一段时间后返回错误:

Unable to uninstall 'jQuery 1.10.2' because 'bootstrap 3.0.0' depends on it.
Run Code Online (Sandbox Code Playgroud)

好的,我再次输入安装命令.这次错误是:

Failed to add reference to 'System.Net.Http'. Please make sure that it is in the Global Assembly Cache.
Run Code Online (Sandbox Code Playgroud)

所有后续安装尝试都以相同的错误完成.

UPD:我已经使用"Manage NuGet Packages"UI成功安装了示例.仍然感兴趣为什么它没有在控制台工作?我做错了什么吗?

nuget asp.net-identity asp.net-identity-2

6
推荐指数
0
解决办法
1357
查看次数

ICollection <T>的简单现有实现

ICollection<T>在.NET框架中有一个简单的实现吗?即一个集合类,能够添加和删除项目,但没有索引.Collection<T>绝对不适合,因为它也实现IList,所以元素可以通过索引访问.

揭露Collection<T>List<T>ICollection<T>不能在我的情况下工作太,因为我需要从它继承我自己的类,以及实现其他类继承的类IList<T>将有索引为好.

我知道自己实施一个并不是什么大事,但只是认为它应该已经存在,搜索但没有找到类似的东西.

.net c# generics

6
推荐指数
1
解决办法
8606
查看次数

通过Dispatcher调用异步lambda时双重等待

private async Task<T> LoadForm(WebControlAsync browser, Uri url)
{ ... }

var forms = await await _dispatcher.InvokeAsync(async () => await LoadForm(browser, form.Url));
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我必须使用两个await的在这里得到Tforms?所以它看起来像InvokeAsync回报Task<Task<T>>.但是当我调用这样的同步方法时:

var forms = await _dispatcher.InvokeAsync(() => FillForm(forms, url));
Run Code Online (Sandbox Code Playgroud)

它只需要单身await.所以原因似乎是异步lambda.我明白,如果我这样写:

var forms = await await _dispatcher.InvokeAsync(() => LoadForm(browser, form.Url));
Run Code Online (Sandbox Code Playgroud)

然后返回类型LoadFormTask<T>InvokeAsync返回Task<lambda return type>所以它确实会Task<Task<T>>.但是当一个Task方法被await编辑时,是不是"从"开始实际返回类型Task?所以,如果我写:

var forms = await LoadForm(browser, form.Url);
Run Code Online (Sandbox Code Playgroud)

formsT …

c# wpf dispatcher task-parallel-library async-await

3
推荐指数
1
解决办法
1077
查看次数

Awesomium offscreen webview永远不会加载页面

public class Program
{
    static void Main(string[] args)
    {
        var session = WebCore.CreateWebSession(new WebPreferences { WebSecurity = false });
        var browser = WebCore.CreateWebView(1920, 3000, session, WebViewType.Offscreen);
        WebCore.ShuttingDown += WebCoreOnShuttingDown;
        browser.ConsoleMessage += BrowserOnConsoleMessage;
        browser.LoadingFrameComplete += BrowserOnLoadingFrameComplete;
        browser.DocumentReady += BrowserOnDocumentReady;
        browser.Source = new Uri("http://www.google.ru/");
        var error = browser.GetLastError();
        Console.ReadKey();
    }

    private static void BrowserOnConsoleMessage(object sender, ConsoleMessageEventArgs consoleMessageEventArgs)
    {

    }

    private static void WebCoreOnShuttingDown(object sender, CoreShutdownEventArgs coreShutdownEventArgs)
    {

    }

    private static void BrowserOnDocumentReady(object sender, UrlEventArgs urlEventArgs)
    {

    }

    private static void BrowserOnLoadingFrameComplete(object sender, …
Run Code Online (Sandbox Code Playgroud)

c# awesomium

2
推荐指数
1
解决办法
3869
查看次数

LINQ 选择异步方法的模拟

假设我有以下示例代码:

private static async Task Main(string[] args)
{
    var result = Enumerable.Range(0, 3).Select(x => TestMethod(x)).ToArray();
    Console.ReadKey();
}

private static int TestMethod(int param)
{
    Console.WriteLine($"{param} before");
    Thread.Sleep(50);
    Console.WriteLine($"{param} after");
    return param;
}
Run Code Online (Sandbox Code Playgroud)

TestMethod 将运行完成 3 次,因此我将看到 3 对beforeafter

0 before
0 after
1 before
1 after
2 before
2 after
Run Code Online (Sandbox Code Playgroud)

现在,我需要使 TestMethod 异步:

private static async Task<int> TestMethod(int param)
{
    Console.WriteLine($"{param} before");
    await Task.Delay(50);
    Console.WriteLine($"{param} after");
    return param;
}
Run Code Online (Sandbox Code Playgroud)

如何为此异步方法编写类似的 Select 表达式?如果我只使用 async lambda Enumerable.Range(0, 3).Select(async x …

.net c# linq async-await

2
推荐指数
1
解决办法
3667
查看次数