Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。
我正在尝试通过 CheckBox 打开/关闭 GroupBox 的使用
C#。我是 WPF 新手,我不明白为什么当我打开/关闭 checkBox 时,groupBox 不响应。就像在程序开始时 groupBox 被关闭一样,比你在 checkBox 上按一次,groupBox 就关闭了...
绑定提供有效值。 DependencyProperty 接收 NULL。为什么?
我有一个绑定困扰着我。根据值转换器,提供给我的控件的值是有效的且不为空。但最后的 DependencyProperty 总是收到 null。 ...
我在WPF中有一堆带有透明背景的工具条按钮。当用户将鼠标悬停在按钮的外部时,不会发生任何事情,因为按钮的该部分是透明的。一旦
我想在必须将资源注入 GUI 控件的场景中使用依赖注入。因为这可能是错误的地方,所以我有一些理由在这里而不是在视图模型中执行此操作(例如...
我正在尝试制作一个选择矩形,可以更改其位置和大小以及旋转它 - 一切都将通过拖动鼠标来完成。 我搬家成功了...
我有两个默认窗口。我希望一个窗口开始一项工作,以模式(对话框)形式显示另一个窗口(指示进度,但现在并不重要),然后在这项工作完成后关闭它...
我正在尝试构建一个多客户端/多服务器应用程序 客户包括电脑、智能手机等 因此它们可以使用静态或动态 IP,或者位于防火墙或 NAT 后面......等等 我都有...
WPF似乎有一些默认打开的验证规则。当我在绑定文本框中输入非数字文本并用 Tab 键将其移出时,它周围会显示一个读取边框。这里发生了什么? ...
我有双显示器设置。当我在主显示器上打开应用程序并将其拖动到辅助显示器(在两个显示器的中间)并打开应用程序中的组合框时,它会在主显示器上打开...
为什么 Inspect.exe 频繁挂起且 AutomationId 显示不一致?
我正在尝试使用 MS UI 自动化来测试 WPF 应用程序,并使用 Windows SDK 中包含的检查对象工具 (inspect.exe) 来查找某些元素上的 AutomationId 属性...
POCO 的静态 INotifyPropertyChanged 生成器
找到了这个运行时INotifyPropertyChanged生成器 http://www.codeproject.com/Articles/141732/Automatic-Implementation-of-INotifyPropertyChanged 想知道是否有静电发生器可以避免......
单击叠加按钮时忽略 ListViewItem 的 EventViewer
我有一个程序,我正在创建一个ListView,其中包含一系列我以编程方式添加的ListViewItems。我还覆盖了一个按钮,允许您从 ListView 中删除该项目。然而,什么...
我需要在 DataTemplate 中将我的绑定绑定到潜在的 2 种不同类型的relativesource,即如下所示: AllowDrop={绑定RelativeSource={RelativeSource AncestorType={...
我有以下 wpf 网格块。我有一个名为 truc.PNG 的图像,这是一个尺寸为 16x16 像素的小文件图像。我可以在图像块中看到它,但不能在菜单栏项目之一中看到它。我...
编辑: 下面的代码实际上按照我想要的方式工作 - 这个问题有点误导。请忽略它。 通常当我像这样设置 TextBlock 的 Text 属性时: TextBlock tb = new TextBlock(); TB...
如何以编程方式将 RibbonTab 添加到 WPF 功能区(2010 年 10 月版本)?
有人知道如何以编程方式将 RibbonTab 添加到 Mircosoft WPF 功能区吗?我找不到示例或至少找不到在文档或 Ribbon 智能感知中使用的属性。 我...
目标是显示应用程序正在运行的信息。所以我正在寻找使用 WPF / MVVM 的加载旋转器的智能实现示例。
我有一个wpf窗口,其中有一个堆栈面板,其中有两个视口 - 每个视口中都有一个文本块。 我有一个 wpf 窗口,其中有一个堆栈面板,其中有两个视口 - 每个视口中都有一个文本块。 <Grid> <StackPanel VerticalAlignment="Center" Orientation="Vertical" > <Viewbox Margin="100,0,100,0"> <TextBlock x:Name="headerText" Text="Lorem ipsum dolor" Foreground="Black"/> </Viewbox> <Viewbox Margin="150,0,150,0"> <TextBlock x:Name="subHeaderText" Text="Lorem ipsum dolor, Lorem ipsum dolor, lorem isum dolor, Lorem ipsum dolor, Lorem ipsum dolor, lorem isum dolor, " TextWrapping="Wrap" Foreground="Gray" /> </Viewbox> </StackPanel> </Grid> 我想要实现的是顶部文本块是带有更大文本的标题。第二个文本块是具有较小文本的子标题。无论标题或副标题有多少文本,字体都应该动态变小/变大。我的问题是我希望副标题的宽度固定。这意味着,字体应该是标题的百分比 (70%),并换行为多行,具体取决于我有多少文本。我附上了迄今为止的代码...我缺少该副标题的一些内容,无法弄清楚是什么。干杯 编辑 基本上我想要实现的是子标题包裹文本,这样它就可以向下扩展它,字体占标题的 70% - 无论字体有多大。 嵌套堆栈面板将导致文本框正确换行: <Viewbox Margin="120,0,120,0"> <StackPanel Orientation="Vertical" Width="400"> <TextBlock x:Name="subHeaderText" FontSize="20" TextWrapping="Wrap" Foreground="Black" Text="Lorem ipsum dolor, lorem isum dolor,Lorem ipsum dolor sit amet, lorem ipsum dolor sit amet " /> </StackPanel> </Viewbox> 使用 TextWrapping 元素的属性 TextBlock: <TextBlock Text="StackOverflow Forum" Width="100" TextWrapping="WrapWithOverflow"/> 使用换行符: <TextBlock> <Run Text="Line1"/> <LineBreak/> <Run Text="Line2" FontStyle="Italic" FontSize="9"/> <LineBreak/> <Run Text="Line3"/> </TextBlock> 请参阅:https://social.msdn.microsoft.com/Forums/vstudio/en-US/51a3ffe4-ec82-404a-9a99-6672f2a6842b/how-to-give-multiline-in-textblock?forum=wpf 谢谢, RDV 事情就到此为止了。没有 ActualFontSize 属性,但有 ActualHeight 并且与 FontSize 相关。目前这仅适用于原始渲染的尺寸。我不知道如何将转换器注册为调整大小事件。实际上可能需要将 FontSize 注册为调整大小事件。请不要因为我的答案不完整而对我进行标记。我无法将代码示例放在评论中。 <Window.Resources> <local:WidthConverter x:Key="widthConverter"/> </Window.Resources> <Grid> <Grid> <StackPanel VerticalAlignment="Center" Orientation="Vertical" > <Viewbox Margin="100,0,100,0"> <TextBlock x:Name="headerText" Text="Lorem ipsum dolor" Foreground="Black"/> </Viewbox> <TextBlock Margin="150,0,150,0" FontSize="{Binding ElementName=headerText, Path=ActualHeight, Converter={StaticResource widthConverter}}" x:Name="subHeaderText" Text="Lorem ipsum dolor, Lorem ipsum dolor, lorem isum dolor, Lorem ipsum dolor, Lorem ipsum dolor, lorem isum dolor, " TextWrapping="Wrap" Foreground="Gray" /> </StackPanel> </Grid> </Grid> 转换器 [ValueConversion(typeof(double), typeof(double))] public class WidthConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { double width = (double)value*.7; return width; // columnsCount; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } 如果您只是想让标题字体比其他字体大一点,您可以使用 ScaleTransform。所以你不依赖于真实的字体大小。 <TextBlock x:Name="headerText" Text="Lorem ipsum dolor"> <TextBlock.LayoutTransform> <ScaleTransform ScaleX="1.1" ScaleY="1.1" /> </TextBlock.LayoutTransform> </TextBlock> 以上所有答案都不能满足我的需求,我很确定这里的大多数人都会遇到类似的问题。 我想要的是将包含换行符的字符串属性绑定到文本块,并使其显示在多行而不是单行中。 WPF 似乎没有一个简单的解决方案,所以我找到了自己的小解决方法。我使用具有自定义样式的文本框,该样式将禁用其可编辑性并使其看起来像文本块。就像一个魅力,还有一个额外的好处,人们现在可以从您的文本块复制文本,这至少在我的所有应用程序中是一个胜利! <Style TargetType="{x:Type TextBox}" x:Key="TextBlock"> <Setter Property="Background" Value="Transparent"/> <Setter Property="BorderBrush" Value="Transparent"/> <Setter Property="BorderThickness" Value="0"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="IsReadOnly" Value="True"/> <Setter Property="FontSize" Value="12"/> <Setter Property="VerticalContentAlignment" Value="Left"/> </Style> 可以这样使用: <TextBox Style="{StaticResource TextBlock}" Text="{Binding UpdateChanglog}"/> 看起来像这样: 文本绑定为: •Update is from server! •The camera now actually works •Images are sharp •Network is great •Everybody happy
我的代码有一个相当奇怪的行为。我设计了一个 Textblock 来更新一个数字,该数字表示两个 for 循环的百分比进度。 50% 的进度由
我创建了一个扩展 TextBox 的 CustomTextBox。 我已经覆盖了 TextProperty 的元数据,因为我想在文本更改时触发一个方法,但是当我运行代码并编辑文本时...