我想在主屏幕上启动我的WPF应用程序.我知道我必须设置myWindow.Left和myWindow.Top,但是我在哪里获取值?
我发现System.Windows.Forms.Screen.PrimaryScreen
,这显然不是WPF.有没有WPF替代品给我屏幕分辨率或类似的东西?
我有一个具有不同屏幕分辨率的双显示器设置,当我在Chrome中访问此页面时,它显示了两个屏幕的正确解析.但IE只显示我的主屏幕的分辨率.它出现在IE中window.screen.availWidth
,window.screen.availHeight
只返回主屏幕的值.我可以获得运行Internet Explorer的第二个屏幕的屏幕分辨率吗?
我敢打赌,对你来说这是一个简单的问题,但是在搜索字符串中{
或}
在搜索字符串中搜索SO或Google时效果不佳.
那么,假设我想输出{Hello World}
,我该如何使用string.format(...)
?
编辑:
看起来像这样:
string hello = "Hello World";
string.format("{0}", '{' + hello + '}');
Run Code Online (Sandbox Code Playgroud)
会做的工作,但这对我来说并不是很优雅.有没有办法在格式字符串中转义这些字符?
我在Google和Stack Overflow上发现了很多次这个问题.没有一个解决方案有效.
我有一个TextBox.AllowDrop设置为true.我首先尝试了DragEnter/DragOver/Drop事件,然后切换到所有这些事件的"预览"事件.无论我做什么,都没有事件被调用.接下来我尝试在InitializeComponent()之后添加处理程序.没运气.
Xaml - 注释掉了,因为我不能发布它:
<TextBox PreviewDragEnter="OutputFolder_DragEnter" PreviewDragOver="OutputFolder_DragOver" AllowDrop="True" PreviewDrop="OutputFolder_Drop" />
Run Code Online (Sandbox Code Playgroud)
没有发布C#代码,因为没有遇到任何断点.它根本不起作用.正如我所提到的,我确实尝试手动添加处理程序,但仍然无法使其正常工作.
我为我的项目创建了一个CustomControl,我将创建更多.所有这些控件都有一些共同点,所以我创建了一个继承自UserControl的抽象类.
如果我通过VisualStudio创建一个CustomControl,它也继承自UserControl,我无法将其切换到我的抽象UserControl,因为VisualStudio将添加一些生成的代码文件.我不想搞砸这些文件.
我可以创建一个空的代码文件并自己编写所有内容,但后来我不能使用XAML(或者我只是不知道如何).
那么如何在不丢失XAML的情况下使用自定义基类创建CustomControl?
我正在尝试从 Visual Studio 解压缩 PostBuild 事件中的文件,但每次执行命令时都会收到错误消息(命令“解压缩”以代码 50 结尾)。
unzip -o "SourceFile.zip" -d "DestinationFolder"
Run Code Online (Sandbox Code Playgroud)
如果我从 cmd 运行此命令,它可以正常工作。
我用谷歌搜索了一下,发现 Code 50 意味着磁盘已满或权限不足。但是我的硬盘有足够的可用空间。我也尝试以管理员权限运行 VS,但仍然是 Code 50。
所以?解压有什么问题?
谢谢
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<!-- … -->
</Grid.RowDefinitions>
<TextBlock Grid.Column="0">
This should be allways visible, even if the expander isn’t expanded!
</TextBlock>
<Expander ExpandDirection="Left" Grid.Column="1">
<Expander.Header>
<!-- … -->
</Expander.Header>
<TreeView MinWidth="50"/>
</Expander>
<!-- … -->
</Grid>
Run Code Online (Sandbox Code Playgroud)
我希望用户能够调整大小TreeView
.我试图用第2列和第2列TreeView
中的a Grid
列扭曲GridSplitter
,但这不起作用.有人知道如何做到这一点吗?
PS:只有XAML的答案会很棒.
我正在尝试在我的项目中找到下一个可用的Groupname.我希望组名看起来像"Gruppe 1","Gruppe 2"等等.这就是我到目前为止所得到的:
int i = 0;
while ((from GroupViewModel g in _groups
where g.GroupName == ("Gruppe " + (++i).ToString())
select g).Any());
Group group = new Group() { Name = string.Format("Gruppe {0}", i) };
_groups.Add(new GroupViewModel(group));
Run Code Online (Sandbox Code Playgroud)
我认为这是我的问题的一个很酷的解决方案,但我开始测试代码.
如果_groups
为空,则第一组是"Gruppe 0".
如果_groups
包含1个组(名为"Gruppe 1"),则生成的组名称为"Gruppe 2".
如果_groups
包含1个组(名为"Gruppe 2"),则生成的组名称为"Gruppe 1",但如果我添加另一个组,则结果名称也为"Gruppe 2".我做了很多测试用例,结果总是很奇怪.
initial Groupnames | Resulting names
-empty- | "Gruppe 0", "Gruppe 1", "Gruppe 2", ...
"Gruppe 1" | "Gruppe 2", "Gruppe 3", "Gruppe 4", ...
"Gruppe 2" | "Gruppe …
Run Code Online (Sandbox Code Playgroud)