我在MenuItem的标题中有一个Button.单击菜单项(而不是按钮部分)会按预期关闭菜单,但单击按钮不会关闭菜单,我想要它.我怎样才能解决这个问题?
更多背景:
我有两个命令是彼此的小变体,我想把它们都放在一个菜单中.第一个变体将在大多数时间使用,所以我真的不希望两个菜单项占用空间,也不想将它们都放在子菜单中.所以我打把一个按钮用于辅助命令的念头里面的菜单项,如下所示:
<Menu>
<MenuItem Header="Git">
<MenuItem Command="{Binding PrimaryCommand}">
<MenuItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="Rebase "/>
<Button Content="Interactive" Focusable="False"
Command="{Binding SecondaryCommand}"/>
</StackPanel>
</MenuItem.Header>
</MenuItem>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
http://www.excastle.com/misc/wpf-menuitem-with-button.png
所以,如果我点击按钮,我将获得辅助命令; 但如果我点击菜单项上的任何其他位置,我将获得主命令.这很有效,在某种程度上.
问题是,无论我是点击MenuItem还是按钮,我都做了我的选择,我希望菜单关闭 - 但如果我点击按钮,它就不会关闭菜单.菜单保持打开状态.在某些情况下,我可以看到这实际上是有用的行为(例如放大/缩小按钮,您可能希望多次点击,而不是在每次点击后关闭菜单,如在谷歌浏览器的菜单中); 但在这种情况下,我确实希望按钮关闭菜单.
如果有人想知道这一点Focusable="False",删除它并不能解决问题,只需更改它,以便Button在第二次放下菜单时使用蓝色(聚焦)边框绘制.
我尝试使用超链接而不是按钮,效果相同:单击超链接不会关闭菜单.
如何让嵌入式按钮关闭菜单?
使用android ndk r5b编译ffmpeg.
ffmpeg 0.6.1
android ndk r5b
cygwin 1.7
建立参考网址:http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html
但是,ffmpeg ./configure结果错误!(在config.err文件下面)
check_cc
BEGIN /tmp/ffconf.GlDiY1P8.c
1 int main(void){ return 0; }
END /tmp/ffconf.GlDiY1P8.c
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o /tmp/ffconf.1kQLpGaU.o /tmp/ffconf.GlDiY1P8.c
arm-eabi-gcc.exe: /tmp/ffconf.GlDiY1P8.c: No such file or directory
arm-eabi-gcc.exe: no input files
C compiler test failed.
Run Code Online (Sandbox Code Playgroud)
所以,我只是尝试测试代码.
// test.c code
int main(){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o ./test.c
好!!!!没问题.
但是,cp ./test.c/tmp(复制到/ tmp)
/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-gcc -fPIC -DANDROID -c -o ./test.o /tmp/test.c
arm-eabi-gcc.exe: /tmp/test.c: No such …Run Code Online (Sandbox Code Playgroud) 有什么办法可以在netbeans中为我的应用程序提供版本号.然后在我的代码中访问该版本号.
类似于我们在.Net中使用的程序集编号的东西.在java或netbeans中有类似的东西......?
是否可以使用像std :: iostream这样的QFile?我很确定那里必须有一个包装纸.问题是在哪里?
我有另一个libs,它需要一个std :: istream作为输入参数,但在我的程序中我此时只有一个QFile.
我想在字符串网格中绘制单元格的画布.这将在预先加载到字符串网格中的图像之上.
目前,我没有在图像上绘图,而是加载第二个透明图像,然后在单元格顶部绘画.这是我使用的代码,它的工作原理.
procedure TfrmCavern.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
index : integer;
I : integer;
begin
// Calculate the corresponding linear index
index := LinearIndexOf(ARow, ACol);
//Draw image referenced to cell
StringGrid.Canvas.StretchDraw(Rect, CellDetails[index].Images.Picture.Graphic);
//if player present draw corresponding player image
for I := 0 to frmWelcome.NoofPlayers - 1 do
begin
if index = Players[I].pIndex then StringGrid.Canvas.StretchDraw(Rect,Players[I].UserImage.Picture.Graphic);
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
该过程首先绘制参考单元格的图像.如果有"玩家"存在,则会将玩家的棋子画在上面.因为"播放器片段"图像是透明的.PNG图像,所以下面的原始图像仍然可见.
该方法的缺点是由于图像是恒定的,"播放器块"处于单元内的设定位置.我希望能够根据选择的单元格在单元格内的不同位置绘制"播放器块".我有大约200个单元格,所以我真的不想手动创建具有不同位置的许多图像.
我已经尝试直接绘制到drawcell过程中的stringgrid的画布,但它似乎引用整个stringgrid而不是正在绘制的当前单元格.
StringGrid.Canvas.ellipse(10,10,50,50);
Run Code Online (Sandbox Code Playgroud)
我看了,但我似乎无法引用当前单元格的画布 - 我认为它不存在?
我尝试的下一件事是绘制临时图像,然后将图像绘制到单元格.
TempImage.Canvas.Ellipse(10,10,50,50);
StringGrid.Canvas.StretchDraw(Rect, TempImage.Picture.Graphic);
Run Code Online (Sandbox Code Playgroud)
这在某种程度上起作用,它确实将图像绘制到单元格,但是图像具有不透明的背景/画布,因此单元格是白色的,其上有圆圈,下方的图像不可见.我做了一些研究,但找不到一种方法来使图像的画布透明.
我能想到的最后一件事就是编写一个算法来定位当前单元格的左上角,然后从那里直接绘制到画布,但这可能是泥泞的,并且在重绘stringgrid时会产生问题.
任何人都能看到我的问题吗? …
为什么不bool?支持解除&&和||?他们本可以提升true和false操作员,这些操作员会间接地增加&&和提升||.
运营商|和&已取消和落实正确的三值逻辑.但当然,他们并没有像||和那样短路&&.
问题是为什么他们在创建规范时决定不提升这些操作符.所以"就像这样,因为规范说的如此"对"为什么?"没有答案.
当抬起true并false让null既不是true也不是false:
public static bool operator true(bool? x)
{
return x.HasValue && x.Value
}
public static bool operator false(bool? x)
{
return x.HasValue && !x.Value
}
Run Code Online (Sandbox Code Playgroud)
这将产生&&和||表现就像他们的非短路对应物.不同之处在于false && anything和true || anything将短路(false和true在这两个例子中没有编译时间常数).
这与 …
我想知道如何在j2me中读取和写入.txt文件的文本帮助我谢谢...
在.net中是否有任何方法可以在运行时将属性字典绑定到实例,即,基本对象类具有如下属性:
public IDictionary Items { get; }
Run Code Online (Sandbox Code Playgroud)
我想出了一个涉及静态字典和扩展方法的解决方案
void Main()
{
var x = new object();
x.Props().y = "hello";
}
static class ExpandoExtension {
static IDictionary<object, dynamic> props = new Dictionary<object, dynamic>();
public static dynamic Props(this object key)
{
dynamic o;
if (!props.TryGetValue(key, out o)){
o = new ExpandoObject();
props[key] = o;
}
return o;
}
}
Run Code Online (Sandbox Code Playgroud)
但这会阻止对象获取GC,因为props集合包含引用.事实上,这对于我的特定用例来说还不错,因为一旦我完成了我正在使用它们的特定事物,我可以手动清除道具,但我想知道,是否有一些狡猾的方式来绑定ExpandoObject到键,同时允许垃圾回收?