草庐IT

c# - 如何删除 WPF 标签中文本周围的边距?

我正在尝试用标签制作一个小虚拟键盘。以下是我在XAML中的键盘(但不仅仅是3个键):问题是标签中文本周围的空间太大,导致键盘比需要的大得多。如果我手动设置标签的高度和宽度,那将(1)不考虑字体差异,并且(2)将剪切部分字母而不是上边距和左边距。是否有任何其他方法可以将这些边距缩小到与文本本身大致相同的大小? 最佳答案 将填充设置为0。我遇到了同样的问题。在属性窗口中检查标签的属性后,我发现标签的默认填充为5。将其设置为0就可以了。 关于c#-如何删除WPF标签中文本周围的边距?,我们在S

c# - WinForms 中的 WPF 控件

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我是.NET世界的新手,对winforms几乎没有经验。我想知道是否可以将WPF与Winforms混合使用。我的意思是我可以在传统的Windows窗体应用程序中使用WPF控件吗?是否存在任何兼容性问题?任何对好的教程的引用都会被应用。

c# - 捕捉/粘性 WPF 窗口

我正在寻找向现有WPF应用程序添加捕捉/粘性窗口功能(类似winamp)的解决方案。和被问到的一样here,只是我需要它用于WPF。它不一定要有停靠功能,只要有可能就可以捕捉到同一应用程序内其他窗口的边框和屏幕边缘(包括任务栏)。最好是开源解决方案。谢谢 最佳答案 这是您实际要求的解决方案:假设我们有2个名为MainWindow和Window2的Xaml窗口:MainWindow:Window2windows2;publicvoidRealodPos(){if(windows2==null){windows2=newWindow2(

c# - 在 WPF DataGrid 中合并单元格

我想创建一个跨越一列中多行的WPF数据网格。像这样:+-------+----------------+|Name|Attributes|+-------+----------------+||HorsePower||BMW+----------------+||Color|+-------+----------------+||Weight||Ford+----------------+||Color|+-------+----------------+下面的代码怎么改才能搞定? 最佳答案 尝试使用DataGridTemplate

c# - 在运行时切换 wpf 资源字典

我正在尝试构建一个允许用户在运行时更改主题的wpf应用程序。到目前为止,我所做的是创建一个资源字典,其中定义了应用程序的所有颜色,然后我在xaml中绑定(bind)到这个字典。下面是我用来切换资源字典的代码:if(System.IO.File.Exists(fileName)){using(FileStreamfs=newFileStream(fileName,FileMode.Open)){ResourceDictionarydic=(ResourceDictionary)XamlReader.Load(fs);Resources.MergedDictionaries.Clear()

c# - 挂接到 WPF 窗口中的 Windows 消息循环会在内部添加白色边框

我正在尝试创建一个带有WindowStyle="None"的WPF窗口(用于自定义按钮,没有标题),无法调整大小。将ResizeMode设置为NoResize会删除我想要保留的航空边框。我可以设置最小/最大大小属性并完成它,除了:调整光标仍然可见,并且显示窗口是为了响应用户操作并适合其内容。它显示图像,因此大小会发生变化。所以,我有一个简单的方案,可以让我完成99%的工作:publicclassBorderedWindowNoResize:Window{[DllImport("DwmApi.dll")]publicstaticexternintDwmExtendFrameIntoCli

c# - 如何在 WPF 中使用自定义控件

我在C#中创建了一个自定义控件(重写了Button控件中的方法并添加了新事件)。我需要在我的wpf应用程序中使用这个控件。在WinForms中,我可以通过ToolBox(右键单击)-->ChooseItems-->Browse使用它。在WPF中,我无法导入自定义控件。有什么办法可以做到这一点 最佳答案 可能需要为某个项目重建,然后应该激活一个xaml文件。您的自定义控件应出现在工具箱中。如果它没有显示。您可以执行以下操作:在您的xaml文件中,在header标记的某处,您会看到许多xmlns:yyy,添加一个新的xmlns:例如:其

c# - WPF:MVP 与 MVVM

MVP和MVVM有什么区别?为什么我们使用MVP,即使我们有三个层:业务、数据访问和表示?将Presentation层划分为MVP有什么具体原因吗? 最佳答案 MVP和MVVM都是MVC的衍生物。MVC是一种将用户表示和交互与内部表示分离的模式。这需要三层,因为将用户交互/呈现直接绑定(bind)到内部表示会导致两者弯曲以相互适应。在您的应用程序中,您将这些层描述为表示层、业务层和数据访问层。只有那些非常松散的描述,您才有可能描述任何MVC衍生产品,或原始MVC模式本身。每个导数之间的主要区别在于每一层对其他层的依赖性,以及它们之间

c# - WPF 验证取决于必填/非必填字段

我是WPF开发的新手,但我正在考虑如何用一block石头杀死3只鸟。示例:我有一个包含2个文本框和2个文本block的表单。第一个“鸟”将能够“丰富”一些带有星号的文本block,如果它们引用必填字段:然后TextBlock将以不同方式显示其文本,第一个将带有星号,而未定义自定义属性的则不会。第二只鸟是对文本框的值进行某种验证,如果我理解正确的话,这是通过使用CustomValidationRule完成的,我为此实现了一个类:classAgeController:ValidationRule{publicoverrideValidationResultValidate(objectva

c# - WPF WrapPanel - 所有项目都应具有相同的宽度

我有一个ListBox,我已将其ItemsPanel替换为WrapPanel。WrapPanel现在托管数据绑定(bind)的ListboxItems。每个项目都有一个可变大小的文本,给每个项目一个不同的宽度。但是,我希望宽度保持不变,以便所有项目的宽度都与文本最长的项目的宽度相同。这可能吗? 最佳答案 将每个项目放置在单行单列(自动宽度)网格中,并为列命名。在ListBox上设置Grid.IsSharedSizeScope,所有网格将具有相同的宽度。 关于c#-WPFWrapPanel