小编Gro*_*kys的帖子

WPF SystemColors:TextBox边框的颜色

我正在尝试使用嵌入式放大镜图标进行搜索TextBox.到目前为止,我有以下标记:

<Border DockPanel.Dock="Bottom" Margin="2,4,0,4" 
        BorderThickness="1" SnapsToDevicePixels="True" 
        BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}">
    <DockPanel>
        <StackPanel Orientation="Horizontal" DockPanel.Dock="Right">
            <Image Source="/Resources/search-13x13.png" Width="13"/>
        </StackPanel>
        <TextBox Name="searchTextBox" DockPanel.Dock="Bottom" BorderThickness="0" 
                 Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}"/>
    </DockPanel>
</Border>
Run Code Online (Sandbox Code Playgroud)

但是,我在SystemColors中找不到与标准TextBox边框颜色相同的条目.默认情况下,这是一种蓝色.我在这里真的很蠢吗?!?

编辑:顺便说一下,图像包含在堆栈面板中,因为我打算在其中放置一个下拉箭头.

wpf xaml styling

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

为什么CollectionView.CollectionChanged受到保护?

我想监视对CollectionView的更改,但CollectionChanged事件受到保护.我该怎么做?当然必须有一种方式来订阅此事件 - 列表控件必须以某种方式执行此操作.

我可以将SourceCollection转换为INotifyCollectionChanged并在那里添加一个事件,但这似乎是不必要的混乱.

collections wpf

6
推荐指数
2
解决办法
1157
查看次数

枚举默认的UWP ThemeResources

我想从UWP下的明暗主题资源中获取键和值的列表.有谁知道这些可以找到的地方?

.net uwp

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

当移动到另一个屏幕时阻止子 NSWindow 消失

在 macOS Monetrey 上,当我将子 NSWindow 移动到另一个屏幕(通过手动拖动它)时,它会消失。使用 SwiftUI 进行最小重现:

import SwiftUI

struct ContentView: View {
    var body: some View {
        Button("Hello World", action:  openChild)
            .padding(50)
    }
    
    func openChild()  {
        let win = NSWindow();
        let parent = NSApp.mainWindow
        parent?.addChildWindow(win, ordered: NSWindow.OrderingMode.above)
        win.makeKeyAndOrderFront(self)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

(我知道这可能不是“正确”的 SwiftUI 处理方式,它只是用尽可能少的代码演示问题 - 这实际上发生在低级 Obj-C 代码中)

有趣的是,如果您:

  • 显示子窗口
  • 将其移至另一个屏幕(它消失)
  • 选择“窗口 -> 移动到[其他屏幕的名称]”

子窗口重新出现,现在可以在屏幕之间自由移动。

从用户报告中我了解到这种行为不会发生在 Big Sur 上。

我知道有些应用程序可以显示子窗口并允许它们在屏幕之间移动,允许这样做的正确咒语是什么?

macos user-interface cocoa

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

GC.AddMemoryPressure()如何知道向哪个对象添加内存压力?

最近,我不得不使用GC.AddMemoryPressure,这让我感到很奇怪,因为它不接受将增加内存压力的对象作为参数。我假设因为它与运行时紧密相关,所以有某种机制可以将this指针传递给方法。我的问题是三个方面:

  1. this指针如何传递给方法?
  2. 我注意到从静态方法调用它时不会引发任何异常。在这种情况下会发生什么?
  3. 为什么其他GC方法(例如GC.SupressFinalize和GC.ReRegisterForFinalize)在不需要该方法的情况下采用对象参数?

.net garbage-collection

5
推荐指数
1
解决办法
1081
查看次数

在 Typescript 中扩展泛型参数

我想创建一个实用程序函数,它通过向isChecked数组中的每个项目添加一个敲除 observable 属性来创建一个清单。此函数应如下所示:

createCheckList<T>(allEntities: T[], selected: T[]) : CheckListItem<T> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我返回 aCheckListItem<T>因为这个接口应该扩展 T 来添加isChecked属性。但是,打字稿不允许我这样做:

interface CheckListItem<T> extends T {
    isChecked: KnockoutObservable<boolean>;
}
Run Code Online (Sandbox Code Playgroud)

给了我错误:

一个接口只能扩展另一个类或接口。

有没有办法做到这一点?

knockout.js typescript

5
推荐指数
2
解决办法
3402
查看次数

OpenCV 霍​​夫线与 scikit-image

我一直在比较 OpenCV 和 scikit-image 的霍夫线实现,我发现 scikit-image 给出了明显更好的结果。我试图在两者中进行相同的canny/hough线变换(在OpenCV中添加a,GaussianBlur因为我相信scikit将其作为canny的一部分)。

我想了解如何从 OpenCV 获得与 scikit-image 类似的结果(如果可能的话)。

这是 scikit-image 的结果:

在此输入图像描述

这是 OpenCV 的结果:

在此输入图像描述

你可以看到他们的情况明显更糟。OpenCV 的中间精明输出也更差(但不是很大程度),所以我不确定这是否是问题所在?

我已将代码和结果上传到https://github.com/grokys/hough-test。为我的Python技能道歉。

python opencv computer-vision scikit-image

5
推荐指数
1
解决办法
675
查看次数

缺少WPF中的功能

我现在已经使用WPF了一段时间,虽然我发现它一般很好,但我发现它仍然缺少许多功能.我想用这个问题编译一个最想要的WPF功能列表,并希望提供一些解决方法.

请仅在每个回复中发布一个功能,以便人们可以投票.也许MS在听?

.net wpf

4
推荐指数
1
解决办法
432
查看次数

ASP.net MVC 4 WebApi - 测试MIME多部分内容

我有一个ASP.net MVC 4(beta)WebApi,看起来像这样:

    public void Post()
    {
        if (!Request.Content.IsMimeMultipartContent("form-data"))
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        IEnumerable<HttpContent> parts = Request.Content.ReadAsMultipartAsync().Result;

        // Rest of code here.
    }
Run Code Online (Sandbox Code Playgroud)

我试图对这段代码进行单元测试,但无法解决如何做到这一点.我在这里走在正确的轨道上吗?

    [TestMethod]
    public void Post_Test()
    {
        MultipartFormDataContent content = new MultipartFormDataContent();
        content.Add(new StringContent("bar"), "foo");

        this.controller.Request = new HttpRequestMessage();
        this.controller.Request.Content = content;
        this.controller.Post();
    }
Run Code Online (Sandbox Code Playgroud)

此代码抛出以下异常:

System.AggregateException:发生一个或多个错误.---> System.IO.IOException:MIME多部分流的意外结束.MIME多部分消息未完成.在System.Net.Http.MimeMultipartBodyPartParser.d__0.MoveNext()在System.Net.Http.HttpContentMultipartExtensions.MoveNextPart(MultipartAsyncContext上下文)在System.Net.Http.HttpContentMultipartExtensions.MultipartReadAsyncComplete(IAsyncResult的结果)在System.Net.Http.HttpContentMultipartExtensions .OnMultipartReadAsyncComplete(IAsyncResult结果)

知道最好的方法是什么?

c# asp.net-mvc asp.net-web-api

4
推荐指数
1
解决办法
3490
查看次数

Web API,OData,$ inlinecount和测试

我之前有一个Web API控制器,如下所示:

    public IQueryable<ApiDesignOverview> GetList(
        string brandIds = "", 
        string categoryIds = "", 
        string query = "",
        string categoryOp = "or")
Run Code Online (Sandbox Code Playgroud)

我听说OData NuGet包现在支持$ inlinecount OData参数,所以我尝试使用http://www.asp.net/web-api/overview/odata-support-in-aspnet-web中的说明添加它-api/supporting-odata-query-options - 我不想使用OData批发,因为这需要对应用程序进行大量的重新架构,所以我PageResult<T>选择了.

所以现在我的控制器看起来像这样:

    public PageResult<ApiDesignOverview> GetList(
        ODataQueryOptions<ApiDesignOverview> options,
        string brandIds = "", 
        string categoryIds = "", 
        string query = "",
        string categoryOp = "or")
Run Code Online (Sandbox Code Playgroud)

我现在的问题是:

  • 如何模拟ODataQueryOptions进行单元测试?
  • 如果他们不能被嘲笑,我该如何创建?我需要一个ODataQueryContext构建一个,需要一个Microsoft.Data.Edm.IEdmModel,这需要......什么?我找不到任何相关的文档.

真的,如果我像以前一样从控制器签名中删除ODataQueryOptions会更好.这可能吗?

asp.net-mvc odata asp.net-web-api

4
推荐指数
2
解决办法
5303
查看次数