小编Mar*_*l B的帖子

如何将WPF应用程序置于屏幕中心?

我想在主屏幕上启动我的WPF应用程序.我知道我必须设置myWindow.Left和myWindow.Top,但是我在哪里获取值?

我发现System.Windows.Forms.Screen.PrimaryScreen,这显然不是WPF.有没有WPF替代品给我屏幕分辨率或类似的东西?

c# wpf screen-positioning

104
推荐指数
5
解决办法
10万
查看次数

Internet Explorer中的Window.screen和多个监视器

我有一个具有不同屏幕分辨率的双显示器设置,当我在Chrome中访问此页面时,它显示了两个屏幕的正确解析.但IE只显示我的主屏幕的分辨率.它出现在IE中window.screen.availWidth,window.screen.availHeight只返回主屏幕的值.我可以获得运行Internet Explorer的第二个屏幕的屏幕分辨率吗?

javascript internet-explorer

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

使用string.format(...)输出'{'或'}'

我敢打赌,对你来说这是一个简单的问题,但是在搜索字符串中{}在搜索字符串中搜索SO或Google时效果不佳.
那么,假设我想输出{Hello World},我该如何使用string.format(...)

编辑:
看起来像这样:

string hello = "Hello World";
string.format("{0}", '{' + hello + '}');
Run Code Online (Sandbox Code Playgroud)

会做的工作,但这对我来说并不是很优雅.有没有办法在格式字符串中转义这些字符?

c# string

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

删除WPF TextBox中的文件

我在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#代码,因为没有遇到任何断点.它根本不起作用.正如我所提到的,我确实尝试手动添加处理程序,但仍然无法使其正常工作.

wpf xaml drag-and-drop

6
推荐指数
2
解决办法
3374
查看次数

WPF控件的自定义基类

我为我的项目创建了一个CustomControl,我将创建更多.所有这些控件都有一些共同点,所以我创建了一个继承自UserControl的抽象类.

如果我通过VisualStudio创建一个CustomControl,它也继承自UserControl,我无法将其切换到我的抽象UserControl,因为VisualStudio将添加一些生成的代码文件.我不想搞砸这些文件.

我可以创建一个空的代码文件并自己编写所有内容,但后来我不能使用XAML(或者我只是不知道如何).

那么如何在不丢失XAML的情况下使用自定义基类创建CustomControl?

.net c# wpf xaml visual-studio

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

如何从 Visual Studio 中的 PostBuildScript 解压缩?

我正在尝试从 Visual Studio 解压缩 PostBuild 事件中的文件,但每次执行命令时都会收到错误消息(命令“解压缩”以代码 50 结尾)。

unzip -o "SourceFile.zip" -d "DestinationFolder"
Run Code Online (Sandbox Code Playgroud)

如果我从 cmd 运行此命令,它可以正常工作。

我用谷歌搜索了一下,发现 Code 50 意味着磁盘已满或权限不足。但是我的硬盘有足够的可用空间。我也尝试以管理员权限运行 VS,但仍然是 Code 50。

所以?解压有什么问题?

谢谢

post-build-event visual-studio

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

如何调整Expander.Content的大小?

<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的答案会很棒.

wpf xaml expander

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

Linq在while-header中的问题

我正在尝试在我的项目中找到下一个可用的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)

c# linq

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