在.NET(而不是Windows窗体或控制台)下使用C#和WPF ,创建只能作为单个实例运行的应用程序的正确方法是什么?
我知道这与一些叫做互斥的神秘事物有关,我很少能找到一个不愿意停下来解释其中一个是什么的人.
代码还需要通知已经运行的实例用户尝试启动第二个,并且如果存在任何命令行参数,也可以传递.
WPF不提供允许调整大小但没有最大化或最小化按钮的窗口的功能.我想能够制作这样一个窗口,以便我可以使用可调整大小的对话框.
我知道解决方案意味着使用pinvoke,但我不知道该怎么称呼以及怎么做.一个搜索pinvoke.net的不转了,在我跳了出来,因为我需要什么什么东西,主要是我敢肯定,因为Windows窗体并提供CanMinimize和CanMaximize性能上它的窗口.
有人可以指点我或提供代码(C#首选)如何做到这一点?
给定系统或用户的任何色调的源颜色,我想要一个简单的算法,我可以用来计算所选颜色的较浅或较暗的变体.与Windows Live Messenger上用于为用户界面设置样式的效果类似.
语言是C#,.net 3.5.
回应评论:颜色格式为(Alpha)RGB.值为字节或浮点数.
标记答案:对于我使用的上下文(一些简单的UI效果),我标记为已接受的答案实际上是此上下文中最简单的.但是,我已经放弃了对更复杂和准确答案的投票.任何进行更高级颜色操作并在将来找到此线程的人都应该检查出来.谢谢你.:)
在WPF的View-Model-ViewModel模式下,我试图为网格控件的各种定义的高度和宽度进行数据绑定,因此我可以在使用GridSplitter后存储用户设置它们的值.但是,正常模式似乎不适用于这些特定属性.
注意:我发布这个作为参考问题,我发布谷歌失败了我,我不得不自己解决这个问题.我自己的答案可以遵循.
我写各种各样的C#中的Telnet客户端和部分我有什么解析是ANSI/VT100转义序列,具体而言,只是那些用于颜色和格式(详细点击这里).
我有一个方法是找到所有代码并删除它们,所以如果需要,我可以在没有任何格式的情况下渲染文本:
public static string StripStringFormating(string formattedString)
{
if (rTest.IsMatch(formattedString))
return rTest.Replace(formattedString, string.Empty);
else
return formattedString;
}
Run Code Online (Sandbox Code Playgroud)
我是正则表达式的新手,我被建议使用它:
static Regex rText = new Regex(@"\e\[[\d;]+m", RegexOptions.Compiled);Run Code Online (Sandbox Code Playgroud)
但是,如果由于服务器上的错误导致转义代码不完整,则会失败.所以这是建议的,但我的朋友警告它可能会更慢(这个也符合我后来可能会遇到的另一个条件(z)):
static Regex rTest =
new Regex(@"(\e(\[([\d;]*[mz]?))?)?", RegexOptions.Compiled);Run Code Online (Sandbox Code Playgroud)
这不仅有效,而且实际上更快,并减少了对文本渲染的影响.有人可以向正则表达式新手解释,为什么?:)
我想知道是否有任何简单的方法来获取在C#中安装在用户系统上的所有固定宽度(等宽字体)字体的列表?
我正在使用.net 3.5,因此可以访问WPF System.Windows.Media命名空间和LINQ来获取字体信息,但我不确定我在寻找什么.
我希望能够提供等宽字体的过滤列表和/或从更大的字体列表中选择等宽字体(如VS选项对话框中所示).
我创建了一个ToggleButton显示和隐藏UI的部分,我已将其发送Content到一个图标.
我现在想要添加一个快捷键,ToggleButton但我不确定如何在不绑定命令的情况下执行操作.由于我所做的只是绑定到IsChecked状态,我不需要命令来执行任何其他功能,并且创建一个空的似乎不正确.
这是我的,ToggleButton因为当我按下指示的快捷键时,它当前不起作用并且没有响应.
<ToggleButton ToolTip="Command History"
MinWidth="24"
IsChecked="{Binding IsShowHistoryChecked}"
Margin="7">
<ToggleButton.InputBindings>
<KeyBinding Gesture="Ctrl+H" />
</ToggleButton.InputBindings>
<Image Source="/Amuse;component/Images/ComHistory256.png"
Width="24" />
</ToggleButton>
Run Code Online (Sandbox Code Playgroud) 我正在从Java开发转向MSFT环境.该应用程序目前是用VB6编写的,将来它将转到VB.NET/C#,我现在需要找到一种方法来获取VB6.我被告知它已经老了,这些天里就没有可用的书了.
有小费吗?网站?
我想在WPF中制作一些自定义的MenuHeaders,这样我就可以(例如)在菜单项中添加一个图标和文本.
通常使用MenuItems,如果使用直文填充Header字段,则可以使用下划线添加加速器.例如,_File
但是,如果我想放入UserControl,我相信这个功能会破坏,我将如何做类似以下的操作?
<Menu>
<MenuItem>
<MenuItem.Header>
<UserControl>
<Image Source="..." />
<Label Text="_Open" />
</UserControl>
</MenuItem.Header>
</MenuItem>
...
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 WSL2 和 Windows 10 下为另一台计算机上的现有项目设置开发环境。从自己的存储库安装该项目并composer install确保基本 .env 文件就位后,我开始/vendor/bin/sail up进行初始构建。
Docker 正常启动,但在 11 的第 4 阶段RUN apt-get update && apt-get install....,它在到达gpg: keybox '/root/.gnupg/pubring.kbx' created构建停止行时停止,时钟仍在滴答作响,但操作永远不会完成。
我可以按 Ctrl + C 并且它会干净地取消。
编辑 Laravel 的 dockerfile,我在脚本中的行中添加了 -vgpg --recv-key ...并获得了额外的输出,之后操作停止了gpg: connection to dirmngr established。
我在 WSL2 下运行 Ubuntu,完全更新,新安装了 docker 并配置为与它进行对话,就像在我的另一台机器上一样,我没有遇到任何问题。
我目前正在使用Silverlight 4并遵循MVVM模式.我有登录框绑定到我的ViewModel,如下所示:
<PasswordBox Password="{Binding Path=Password, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)
然后,我有一个绑定到Command的按钮,该按钮监听ViewModel的PropertyChanged事件,当其中一个数据绑定更新其数据时,它会检查是否有足够的数据来启用Login按钮.
但是,PropertyChanged事件仅在用户从其中一个控件更改焦点时触发,我希望每次按键都更新模型,以便尽快启用登录按钮.
data-binding silverlight mvvm command-pattern silverlight-4.0
wpf ×6
c# ×3
data-binding ×3
.net ×1
ansi ×1
colors ×1
column-width ×1
docker ×1
fonts ×1
grid ×1
laravel ×1
laravel-sail ×1
menu ×1
monospace ×1
mutex ×1
mvvm ×1
pinvoke ×1
regex ×1
resize ×1
row-height ×1
silverlight ×1
styles ×1
templates ×1
togglebutton ×1
vb6 ×1
wsl-2 ×1
xaml ×1