问题列表 - 第43445页

RoutedCommands Executed和PreviewExecuted事件

我的问题是我想在多个地方处理命令.例如,我有自定义的UserControl,其中Button被绑定到某个命令.我在该控件中有一个命令绑定,但我在一个使用该控件的Window中也有一个命令绑定.

我的目标是在控件内执行一些操作,同时不中断窗口中命令的处理.

我尝试过Executed和PreviewExecuted事件,但没有运气.然后我在一个窗口中模拟了问题(下面发布的代码).

<Window x:Class="CommandingEvents.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:CommandingEvents="clr-namespace:CommandingEvents" 
    Title="Window1" Height="300" Width="300">
<Window.CommandBindings>
    <CommandBinding 
        Command="{x:Static CommandingEvents:Window1.Connect}"
        Executed="CommandBindingWindow_Executed"
        PreviewExecuted="CommandBindingWindow_PreviewExecuted"/>
</Window.CommandBindings>
<Grid>
    <Grid.CommandBindings>
        <CommandBinding 
        Command="{x:Static CommandingEvents:Window1.Connect}"
        Executed="CommandBindingGrid_Executed"
        PreviewExecuted="CommandBindingGrid_PreviewExecuted" />
    </Grid.CommandBindings>
    <Button Command="{x:Static CommandingEvents:Window1.Connect}" 
            CommandTarget="{Binding RelativeSource={RelativeSource Self}}"
            Content="Test" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

namespace CommandingEvents
{
    public partial class Window1
    {
        public static readonly RoutedUICommand Connect = new
            RoutedUICommand("Connect", "Connect", typeof(Window1));

        public Window1()
        {
            InitializeComponent();
        }

        private void CommandBindingWindow_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            Console.WriteLine("CommandBindingWindow_Executed");
            e.Handled = false;
        }

        private void CommandBindingGrid_Executed(object sender, ExecutedRoutedEventArgs e)
        { …
Run Code Online (Sandbox Code Playgroud)

wpf routed-commands

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

将锯齿状数组的值克隆到第二个数组的速度非常快?

我目前正在开发一个应用程序,负责计算锯齿状阵列的随机排列.

目前,应用程序中的大部分时间都花费在每次迭代中复制数组(总共100万次迭代).在我当前的系统上,整个过程需要50秒才能完成,其中39秒用于克隆阵列.

我的数组克隆例程如下:

    public static int[][] CopyArray(this int[][] source)
    {
        int[][] destination = new int[source.Length][];
        // For each Row
        for (int y = 0; y < source.Length; y++)
        {
            // Initialize Array
            destination[y] = new int[source[y].Length];
            // For each Column
            for (int x = 0; x < destination[y].Length; x++)
            {
                destination[y][x] = source[y][x];
            }
        }
        return destination;
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法,安全或不安全,以达到与上述相同的效果,更快?

c# arrays performance

10
推荐指数
1
解决办法
7763
查看次数

如何改进 emacs 的 vc-mode 注释?

我发现它hg annotate在跟踪代码来源方面非常有用,但我发现在 emacs 的 vc 模式中,vc-annotate......不太好。这是一个片段:

297 Wed Oct 06 15:21:30 2010 -0600 aws/lib/survey/creator/dbTemplates/web/views.sql: $$,$$
687 Mon Dec 20 10:25:41 2010 -0700 aws/lib/survey/creator/dbTemplates/web/views.sql: GRANT SELECT ON survey_length_view TO reportuser,surveyuser,sampleserver,sampleloader;
687 Mon Dec 20 10:25:41 2010 -0700 aws/lib/survey/creator/dbTemplates/web/views.sql: GRANT ALL ON survey_length_view TO adminuser, GROUP staff;
297 Wed Oct 06 15:21:30 2010 -0600 aws/lib/survey/creator/dbTemplates/web/views.sql: $$);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,那里有很多序言,以及相当多的冗余信息。我不需要知道完整的 ISO 时间戳(无论如何,大多数时候),并且文件的路径被我选择注释时位于文件中的事实所覆盖。我确实需要知道是谁做出了改变,但这里显然不存在这一点。

我该如何修复这个注释工具,使其变得有用?

emacs mercurial visual-c++

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

如何在JTextPane中的一行上设置自定义背景颜色

我想在灰色和白色之间交替作为背景,从我的JTextPane的一行到下一行.我尝试通过重载paintComponent()方法并根据组件高度和字体大小手动绘制背景来做到这一点,但我没有成功.

任何提示?

java swing jtextfield background-color

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

Firefox中包含清除缓存的JavaScript

我正在为一个网站开发JavaScript,用Firefox开发,当我刷新页面时,我看不到我的变化.JavaScript文件位于外部文件中.我重新加载并刷新了几次页面,但旧的JavaScript文件仍然被缓存.最后,我直接在浏览器中加载了JavaScript页面,看到了旧脚本,点击"重新加载",看到了我的更改.

如何清除缓存的外部JavaScript文件?当我告诉客户端进行了更改时,我也需要知道这一点,以便他们不会看到旧的缓存功能.

javascript firefox caching

24
推荐指数
4
解决办法
4万
查看次数

C++:如何为char数组制作比较函数?

这可能吗?当我把char作为类型时,我得到奇怪的错误消息:

inline bool operator==(const char *str1, const char *str2){
    // ...
}
Run Code Online (Sandbox Code Playgroud)

错误信息:error C2803: 'operator ==' must have at least one formal parameter of class type...我根本不明白.

我在想是否可以直接比较像:

const char *str1 = "something";
const char *str2 = "something else";
const char str3[] = "lol"; // not sure if this is same as above
Run Code Online (Sandbox Code Playgroud)

然后比较:

if(str1 == str2){
   // ...
}
Run Code Online (Sandbox Code Playgroud)

等等

但我也希望它能与之合作:

char *str = new char[100];
Run Code Online (Sandbox Code Playgroud)

和:

char *str = (char *)malloc(100);
Run Code Online (Sandbox Code Playgroud)

我假设我使用这种方式的每个char数组都会以NULL字符结束,所以检查应该是可能的,但我知道它可能是不安全的等等.我只是想知道这是否可行,以及如何.

c++ operator-overloading

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

优化Android位图上的每像素混合

我正在尝试在两个图像上应用混合滤镜(在本例中为HardLight).基础Android库不支持HardLight,因此,我在每个像素上手动完成.第一次运行正在运行,但速度低于恒星.从基础500x500图像和500x500过滤器生成500x500图像的过程太长了.这段代码也用于生成缩略图(72x72),它与应用程序的核心不可分割.我喜欢一些关于如何提高速度的建议和/或提示.

如果假设两个图像都不具有alpha,那么可以获得巨大的收益,这很好.注意:BlendMode和alpha是示例中未使用的值(BlendMode将选择混合类型,在本例中为硬编码HardLight).

public Bitmap blendedBitmap(Bitmap source, Bitmap layer, BlendMode blendMode, float alpha) {
    Bitmap base = source.copy(Config.ARGB_8888, true);
    Bitmap blend = layer.copy(Config.ARGB_8888, false);

    IntBuffer buffBase = IntBuffer.allocate(base.getWidth() * base.getHeight());
    base.copyPixelsToBuffer(buffBase);
    buffBase.rewind();

    IntBuffer buffBlend = IntBuffer.allocate(blend.getWidth() * blend.getHeight());
    blend.copyPixelsToBuffer(buffBlend);
    buffBlend.rewind();

    IntBuffer buffOut = IntBuffer.allocate(base.getWidth() * base.getHeight());
    buffOut.rewind();

    while (buffOut.position() < buffOut.limit()) {
        int filterInt = buffBlend.get();
        int srcInt = buffBase.get();

        int redValueFilter = Color.red(filterInt);
        int greenValueFilter = Color.green(filterInt);
        int blueValueFilter = Color.blue(filterInt);

        int redValueSrc = Color.red(srcInt);
        int greenValueSrc = …
Run Code Online (Sandbox Code Playgroud)

android image-processing bits-per-pixel color-blending

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

Java中从32位值的部分计算部分十进制值的最佳方法是什么

我有一个32位整数值,我想将其转换为两个十进制值.来自5个最低有效位的一个值和来自其余位(27位)的一个十进制值.

我怎么用Java做到这一点?

我能想到的唯一解决方案是这样的:

int i = 1073326082;
String binaryString = Integer.toBinaryString(i);
int fiveLeastSigValue = Integer.parseInt(binaryString.substring(27), 2));
int theRest = Integer.parseInt(binaryString.substring(0, 27), 2));

但我确定有一些更有效的方法来做到这一点.有任何想法吗?

java bit-manipulation decimal

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

C++中delete和delete []的区别

可能重复:
C++中的delete vs delete []运算符

我已经写了包含两个指针类,一个是char* color_和一个在vertexesset* vertex_那里vertexesset是一类我创建.在我开始写的destractor中

delete [] color_;
delete [] vertex_;
Run Code Online (Sandbox Code Playgroud)

当它来到析构函数时,它给了我一个分段错误.

然后我将析构函数更改为:

delete [] color_;
delete vertex_;
Run Code Online (Sandbox Code Playgroud)

现在它工作正常.两者有什么区别?

c++ memory-management

34
推荐指数
4
解决办法
3万
查看次数

使模型中的用户默认为当前用户

我有以下内容:

from django.contrib.auth.models import User

class ClientDetails(models.Model):
    created_by = models.ForeignKey(User)
    ...
Run Code Online (Sandbox Code Playgroud)

如何created_by对当前登录的用户进行默认设置?

(我想这样做,所以我可以在管理视图中隐藏它,但也因为当我保存一个实例时我不想每次都填充它)

python django django-models django-admin

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