简单的WPF/XAML问题.在XAML中,如何在给定的上下文中引用Self/this对象?在具有主窗口,一个控件和窗口的编码C#属性的非常基本的应用程序中,我想将控件的属性绑定到窗口的手写编码属性.
在代码中,这很容易 - 在Window的构造函数中,我添加了这个:
Binding bind = new Binding();
bind.Source = this;
bind.Path = new PropertyPath("ButtonWidth");
button1.SetBinding(WidthProperty, bind);
Run Code Online (Sandbox Code Playgroud)
显然,我有一个名为ButtonWidth的属性,以及一个名为button1的控件.我无法弄清楚如何在XAML中执行此操作.以下示例的各种尝试都没有奏效:
<Button x:Name="button1" Width="{Binding Source=Self Path=ButtonWidth}"/>
<Button x:Name="button1" Width="{Binding RelativeSource={RelativeSource Self} Path=ButtonWidth}"/>
Run Code Online (Sandbox Code Playgroud)
等等
谢谢
在我的WPF应用程序中,我有时会出现问题System.Windows.MessageBox.当它最初显示时,它会显示在我的主应用程序窗口的顶部,如我所愿.有没有办法可以强迫它始终保持在主窗口的顶部?我遇到的问题是,当MessageBox显示a时,用户可以点击主应用程序窗口并将其置于前面,这意味着MessageBox隐藏在视图之外.在这种情况下,用户可能没有意识到它在那里,或者忘了它,对他们来说,主应用程序似乎已经冻结了.
我已经阅读了很多有关此问题的帖子,但没有人为我解决了这个问题.
我应该补充说,提出的线程MessageBox可能不是UI线程.谢谢汤姆
我想在一个带有参数IntPtr.Zero的函数中使用默认参数值IntPtr.这是不可能的,因为IntPtr.Zero它不是编译时常量.
有什么方法可以做我想做的事吗?
我有一个使用 SDL2 编写的游戏,以及用于绘图的 SDL2 渲染器(硬件加速)。有没有绘制填充四边形或三角形的技巧?
目前,我只是通过绘制大量线条(SDL_Drawlines)来填充它们,但性能很差。
我不想进入OpenGL。
我的组织生成一套利用网络的Windows应用程序,因此当用户第一次运行我们的软件时,Windows防火墙(如果它正在运行)会弹出一个弹出窗口,通知用户我们的应用程序(s) )正在尝试使用网络,提示用户允许或拒绝访问.
这种情况发生在很多其他应用程序(Spotify,举个例子),但是我们希望阻止这些弹出窗口的发生,因为它们对我们的用户来说可能有点问题.某些应用程序(MSN Messenger,GoogeTalk)在没有使防火墙提醒用户的情况下运行,我们也希望这样做.
我们已经在Windows XP上成功完成了此操作,方法是让我们的安装程序在
HKLM\SYSTEM\ControlSet001 \服务\ SharedAccess \参数\ FirewallPolicy\StandardProfile\AuthorizedApplications \目录
但是,这对Windows 7没有同样的效果 - 防火墙弹出窗口仍然存在.
有什么想法我们怎么做到这一点?(我们的安装程序和软件都经过数字签名.)
谢谢汤姆戴维斯
我用WiX创建的安装程序使用SystemFolder变量安装DLL ,并将C#app安装到另一个文件夹中.我想直接从应用程序中引用DLL.我是否需要查找注册表项才能找到它的SystemFolder位置?
我有一个包含Togglebutton和Popup的控件.单击ToggleButton时,将显示弹出窗口.取消选中ToggleButton时,弹出窗口应该关闭.此外,单击远离弹出窗口应该会使其关闭,并导致Togglebutton取消选中.
我通过将Popup的StaysOpen属性设置为false来设置它,并将切换按钮的IsChecked属性设置为与Popup的IsOpen属性双向绑定.
一切都很好,除了一个案例 - 选中按钮并打开弹出窗口,单击按钮不会导致弹出窗口关闭,或者按钮返回未选中状态.
我相信,这一定是因为点击按钮会弹出来弹出的IsOpen属性设置为false的StaysOpen逻辑.反过来,这会将Togglebutton设置为未选中状态.这必须在我点击按钮处理之前发生 - 所以点击会重新检查按钮,即竞争条件.
知道我怎么能得到我想要的行为吗?
我被要求将Apple的Bonjour安装程序捆绑到我们自己的msi安装程序中,以便Bonjour自动安装在我们的软件旁边.有人这样做过吗?它似乎并不是微不足道的,因为msi安装程序不能包含和启动另一个.我假设我需要某种批处理文件来顺序运行这两个安装程序?
我正在尝试使用.NET Regex来验证字符串的输入格式.字符串可以是格式
single digit 0-9 followed by
single letter A-Z OR 07 OR 03 or AA followed by
two letters A-Z
Run Code Online (Sandbox Code Playgroud)
所以0AAA,107ZF,503GH,0AAAA都是有效的.我构造我的正则表达式的字符串如下:
"([0-9]{1})" +
"((03$)|(07$)|(AA$)|[A-Z]{1})" +
"([A-Z]{2})"
Run Code Online (Sandbox Code Playgroud)
然而,这并不验证第二项是03,07或AA之一的字符串.在调试时,我从用于构造正则表达式的字符串中删除了第三个术语,并发现103,507,6AA形式的输入字符串将验证.......
任何想法为什么,当我把第三个术语放回到正则表达式时,输入字符串如1AAGM不匹配?
谢谢汤姆
我正在 Windows 上设置 Jenkins 来负责我一直在处理的 Windows 项目的构建。到目前为止,我只是在本地进行构建。我有一个执行构建的批处理文件,最终生成一些 msi 安装程序。
某些项目包含运行批处理文件的构建后步骤。批处理文件的参数有时包含空格。当我从命令提示符运行构建批处理文件时,这不是问题。
然而,詹金斯似乎有一个问题 - 我收到错误,例如
“找不到文件:C:\Program”
我很困惑为什么当詹金斯触发批处理时会发生错误,但当我手动运行它时却不会发生错误 - 有什么想法吗?