小编Gra*_*ier的帖子

我可以扩展Button以添加RightClick事件,以便保持图形副作用吗?

我正在尝试扩展Button以添加RightClick事件.

我的客户想要一个按钮来执行不同的操作,具体取决于您是左键单击还是右键单击.我希望有一个简单的右键点击事件,但结果却没有.

我更喜欢Button的视觉行为与之前存在的Click事件相同,但事实证明这很难.单击并拖动按钮时,按钮会出现许多图形行为.

  • 单击时,按钮会降低.如果你拖下降低的按钮,它会升起(例如,降低).您拖动的任何其他按钮都会忽略它.
  • 当您向后拖动原始按钮时,它将再次降低.
  • 如果您拖动然后释放,原始按钮的状态应该重置(即您无法重新点击并再次拖动).

如果左键单击视觉效果与右键单击视觉效果不匹配,这些小图形怪癖将看起来很粗糙.

目前我坚持这样:如果右键单击并按住按钮,然后拖动按钮,如何检测用户是否取消点击?我需要知道这一点,所以我知道不要在重新进入时重新按下按钮.

一个更广泛的问题:我是否走上正轨?我以前找不到任何人这样做过的人.我的代码如下.

public class RightClickButton : Button
{
    public event RoutedEventHandler RightClick;

    public RightClickButton()
    {
        this.MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(RightClickButton_MouseRightButtonDown);
        this.MouseRightButtonUp += new System.Windows.Input.MouseButtonEventHandler(RightClickButton_MouseRightButtonUp);
        this.MouseEnter += new System.Windows.Input.MouseEventHandler(RightClickButton_MouseEnter);
        this.MouseLeave += new System.Windows.Input.MouseEventHandler(RightClickButton_MouseLeave);
    }

    void RightClickButton_MouseRightButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        this.IsPressed = true;
    }

    void RightClickButton_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        this.IsPressed = false;
        if (RightClick != null)
            RightClick.Invoke(this, e);
    }

    void RightClickButton_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
    {
        if (this.IsPressed)
            this.IsPressed = false;
    }

    void …
Run Code Online (Sandbox Code Playgroud)

c# wpf button right-click

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

如何在 VSCode 中使用 Kotlin 进行自动导入

有没有办法让 VSCode 在 Kotlin 中自动创建导入行?

例如

  1. 用户val thread = Thread()在 VSCode 中输入 Kotlin 源代码
  2. 用户通过热键或其他方式调用自动导入器
  3. VSCode自动import java.lang.Thread在顶部插入

Java 扩展有一个命令可以准确地执行此操作(使用 alt+shift+o)。

当然,必须有一个 Kotlin 扩展或命令来实现此目的,但我找不到它。

kotlin visual-studio-code

5
推荐指数
0
解决办法
1384
查看次数

Capistrano不遵守"在release_path内"

我有这个任务:

namespace :custom do
  desc "create a symlink to db config already on the server"
  task :symlink_db_config do
    on roles(:web) do
      within release_path do
        execute "pwd"
      end

      within release_path do
        execute "ln -nfs /home/blog/config/database.yml ./database.yml"
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

出于某些令人愤怒的原因,该pwd命令前面有一个cd到释放路径,但ln命令不是.这是为什么?

这是输出,显示以上内容:

** Invoke custom:symlink_db_config (first_time)
** Execute custom:symlink_db_config
DEBUG[352cc4bb] Running /usr/bin/env if test ! -d /home/blog/staging/releases/20141010050707; then echo "Directory does not exist '/home/blog/staging/releases/20141010050707'" 1>&2; false; fi on 172.245.32.193
DEBUG[352cc4bb] Command: if test ! -d …
Run Code Online (Sandbox Code Playgroud)

capistrano capistrano3

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

如何在FIX日志的UNIX命令中获取FIX标记之间的管道(|)分隔符?

我可以通过运行来获得标签之间的空格:

tail -f filename | tr '\001' ' '
Run Code Online (Sandbox Code Playgroud)

但我希望尾部输出有|分隔符,即

35 = d | 49 =发件人| 56 =收件人

谁知道怎么样?谢谢

unix fix-protocol

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

使用javascript设置cookie在Poltergeist和/或PhantomJS中不起作用

我有一个设置cookie的网页document.cookie = value,它在服务器上运行时运行良好.

然而,在我的黄瓜测试中(使用Poltergeist/PhantomJS),cookie不会从一页到下一页持续存在.

测试流程为:

  1. 页面A打开
  2. 用户单击一个按钮,触发JS设置cookie
  3. 用户单击链接到页面B.
  4. 页面B有一个反映cookie值的组件

在针对正在运行的服务器的真实浏览器中,它很好.

但在黄瓜中,第4步的显示显示它看到一个空白的cookie.

有谁知道如何修复或调查这个?

cucumber phantomjs poltergeist

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

Git恢复包索引文件

我有一个* .pack文件的git回购-没有松散的对象。由于某种原因(与问题无关),所有* .idx文件都会丢失。我该如何还原它们?

谢谢

git restore

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

修改特定迁移

我有需要更改的迁移(创建回来),如下所示:

20130923000732_create_questions.rb
Run Code Online (Sandbox Code Playgroud)

我需要改变

 t.string to --> t.text
Run Code Online (Sandbox Code Playgroud)

我怎么能实现这个目标?

我读到我可以创建一个新的迁移重命名列,但我不太明白.

migration ruby-on-rails rollback ruby-on-rails-4

3
推荐指数
2
解决办法
7209
查看次数

所选设备不兼容 - Android Studio

我之前已经解决了这个问题,但我现在不能,我需要永久修复.在测试我的应用程序时,Android Studio中的一切都很顺利.我现在遇到问题"所选设备不兼容".当我去运行应用程序.我想知道如何保持它不会将我的手机的API读为1,而不是更改我的minSDK以满足此问题,如果可能的话.

编辑:字面上刚刚找到一个修复程序,不确定它是否是永久性的.我刚刚恢复了开发选项中的默认设置,关闭了USB调试并再次打开,这就是诀窍.

android android-studio android-min-sdk

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

如何在 Arbre 中添加段落(“p”)标签?

我可以做一个div这样的标签:

2.1.0 :014 > Arbre::Context.new { div "foo" }
 => <div>foo</div>
Run Code Online (Sandbox Code Playgroud)

还有一个span像这样的标签:

2.1.0 :017 > Arbre::Context.new { span "foo" }
 => <span>foo</span>
Run Code Online (Sandbox Code Playgroud)

但这个约定不适用于p(paragraph) 标签:

2.1.0 :020 > Arbre::Context.new { p "foo" }
"foo"
 =>  
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为p它已经在 Ruby 中使用了。

如何在 Arbre 中添加段落标签?

arbre

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

无法将第一个用户插入Rails/devise用户表

我在播放用户表时遇到问题.

(rails 3.2.6,jruby 1.6.7.2,devise 2.1.2)

这是一个非常通用的用户表,由"rails generate devise User"生成,加上此howto页面描述的修改,以便用户可以使用用户名而不是电子邮件地址登录.

rails db:seed没有给出任何错误迹象,日志也没有.当我使用sqlite控制台确认时,表是空的. 是的,它正在使用开发环境.我对此进行了双倍和三重检查.

当我使用rails console并输入创建命令时,我得到:

1178 ~/dev/proj$ rails console
Loading development environment (Rails 3.2.6)
jruby-1.6.7.2 :001 > User.create( 
jruby-1.6.7.2 :002 >       :username             => 'admin',
jruby-1.6.7.2 :003 >       :email                => 'admin@fake.com', 
jruby-1.6.7.2 :004 >       :password             => 'admin',
jruby-1.6.7.2 :005 >       :password_confirmation => 'admin', 
jruby-1.6.7.2 :006 >     )
    User Exists (1.0ms)  SELECT 1 AS one FROM "users" WHERE "users"."email" = 'admin@x.com' LIMIT 1
    => #<User id: nil, email: …
Run Code Online (Sandbox Code Playgroud)

devise ruby-on-rails-3.2

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