小编Pav*_*gin的帖子

WPF:如何使用透明画布和可点击的子画面进行叠加控制

我想制作一个自定义控件,用作叠加层.该控件应包含一些应该绘制的子控件,并且应该像往常一样可以单击.但控件中的其他所有内容都应该是透明的并且"可点击".

以下是我尝试实现此目的的方法......首先,我在将要放置叠加层的窗口中使用PreviewMouseDown\Up\Move事件.我希望这些事件"通过"我的自定义控件的透明部分,但停止在不透明(例如在我的按钮).其次,这是我的控件的xaml(root UserControl节点保持不变):

<Canvas Background="transparent" IsHitTestVisible="true">
     <Button Canvas.Left="384" Canvas.Top="34" Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" IsHitTestVisible="True" />
     <TextBlock Canvas.Left="27" Canvas.Top="105" Height="36" Name="textBlock1" Text="TextBlock" Width="432" FontSize="24" IsHitTestVisible="False" Foreground="Red" FontWeight="Bold" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)

但是,如果我将Canvas的IsHitTestVisible设置为false,则包括按钮在内的整个控件将变为"unhittable".如果将其设置为true,则所有隧道事件都将停止在自定义控件上,并且按钮将变为不可点击.

实现这种行为的正确方法是什么?是否可以在没有子画布画布(或任何其他面板)的情况下这样做?

wpf overlay custom-controls transparent hittest

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

结合布尔Observables

当某些条件发生变化时,我有两个流信号.我需要一个Observable,它将true所有条件转变时触发true.false其中任何一个打开false.如果某些条件是,false而另一个变化,false我不需要提出事件.

我是这样做的:

// Introducing current states
private bool cond1 = false;
private bool cond2 = false;

void MyHandlingMethod(IObservable<bool> c1, IObservable<bool> c2)
{
    c1.Subscribe(b => _state1 = b);
    c2.Subscribe(b => _state2 = b);

    var c3 = c1.Merge(c2).Select(_ => _cond1 && _cond2);

    c3.Subscribe(b => /* some action goes here /*);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是解决问题的正确方法,是否有任何陷阱.例如,由于rx的异步性质,c3订阅在c1和c2之前触发.

c# boolean system.reactive

14
推荐指数
1
解决办法
3417
查看次数

C#中的FsCheck:生成具有相同形状的二维数组的列表

假设我正在为视频分析编写一些代码.以下是Video类的简化版本:

public class Video
{
    public readonly int Width;
    public readonly int Height;
    public readonly List<int[,]> Frames;

    public Video(int width, int height, IEnumerable<int[,]> frames)
    {
        Width = width;
        Height = height;
        Frames = new List<int[,]>();
        foreach (var frame in frames)
        {
            if (frame.GetLength(0) != height || frame.GetLength(1) != width)
            {
                throw new ArgumentException("Incorrect frames dimensions");
            }
            Frames.Add(frame);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何制作Arbitrary<Video>和注册?如何为该任意制作收缩器?

试过这个,无法理解申请是如何运作的:

public static Arbitrary<Video> Videos()
{
    var videoGen = Arb.Generate<PositiveInt>()
        .SelectMany(w => Arb.Generate<PositiveInt>(), (w, h) => new …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing fscheck generative-testing

12
推荐指数
2
解决办法
1372
查看次数

无法连接到Sql Server数据库:未显示非系统数据库

我正在尝试使用数据连接向导从Visual Studio 2010连接到SQL Server 2008 Express数据库.我选择新连接 - > MS Sql Server然后我选择唯一可用的服务器名称(PAVEL-PC\SQLEXPRESS).问题是我无法在下面的组合框中看到我的数据库.但是显示了系统数据库(如master,model,msdb等).我设法找到了类似的问题(比如这一个:无法连接到Visual Studio中的SQL Server数据库,因为我的数据库不在那里)而且似乎我有权限问题.但是我无法理解应该添加哪个用户(以及在哪里).

我正在运行Visual Studio的帐户名是Pavel.我的电脑名称是Pavel-PC.我不确定我的SQL Server帐户名是什么,但它是使用默认设置安装的.

permissions database-connection visual-studio-2010 sql-server-2008 system-databases

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

Emacs + clojure.来自项目中所有源文件的自动完成数据

我一直在开发C#应用程序.商业IDE和工具提供了非常好的代码完成功能.我现在正在学习clojure,我真的很想念熟悉的工作流程.

所以,关于emacs.我安装了nrepl,ac-nreplclojure-mode.repl中自动完成工作正常.它也适用于当前缓冲区中的符号.但不适用于:

  1. 来自其他项目文件的符号
  2. 外部图书馆(由leiningen管理).

是否有任何现有的包完全涵盖案例1和2?

我的与clojure相关的配置:

;;;;;;;;;;;;;;;
;;; clojure ;;;
;;;;;;;;;;;;;;;

(require 'nrepl)

;; Configure nrepl.el
(setq nrepl-hide-special-buffers t)
(setq nrepl-popup-stacktraces-in-repl t)
(setq nrepl-history-file "~/.emacs.d/nrepl-history")

;; Some default eldoc facilities
(add-hook 'nrepl-connected-hook
      (defun pnh-clojure-mode-eldoc-hook ()
        (add-hook 'clojure-mode-hook 'turn-on-eldoc-mode)
        (add-hook 'nrepl-interaction-mode-hook 'nrepl-turn-on-eldoc-mode)
        (nrepl-enable-on-existing-clojure-buffers)))

;; Repl mode hook
(add-hook 'nrepl-mode-hook 'subword-mode)

;; Auto completion for NREPL
(require 'ac-nrepl)
(eval-after-load "auto-complete"
  '(add-to-list 'ac-modes 'nrepl-mode))

(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)
(add-hook 'clojure-nrepl-mode-hook 'ac-nrepl-setup)

(define-key clojure-mode-map (kbd "C-<ret>") 'nrepl-eval-expression-at-point)

;(global-set-key (kbd …
Run Code Online (Sandbox Code Playgroud)

emacs autocomplete clojure nrepl

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

美元符号($)在clojure符号名称

我一直在写一个clojure解析器,并遇到以下语法:

(defn key
  "Returns the key of the map entry."
  {:added "1.0"
   :static true}
  [^java.util.Map$Entry e]
    (. e (getKey)))
Run Code Online (Sandbox Code Playgroud)

那'''在这里意味着什么?元数据之外的那种语法是否有用处?

clojure

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

如何使用linq将代理聚合到新的委托中

比方说我有一个IEnumerable<Func<object, bool>>.我想创建一个新的Func<object, bool>,如果该列表的每个函数在某个对象上调用时返回true,则返回true.换句话说,我想聚合(reduce\foldl)一个函数列表.

c# linq functional-programming aggregate

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