Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。
我一直在尝试实现菜单更改到另一个菜单之间的转换。我使用 WPF .Net 8 和 Caliburn Micro 进行 MVVM。 所以我在 MainView.xaml 中创建了故事板动画...
将列表<Model>转换为ObservableCollection<ViewModel>
我对 MVVM 实现相当陌生。这可能听起来像是一个重复的问题,但我找不到任何东西可以帮助我更好地理解我的基础知识......
WPF - 使用 ContextMenu、MVVM 和 Command 将 ListView 的项目单元格文本复制到剪贴板
我试图实现一个非常简单的任务:使用右键单击上下文菜单将 ListView 单元格的文本复制到剪贴板,但该任务在 WPF 中似乎非常复杂。我读过几个主题...
我正在开发基于 XAML 窗口的 C# WPF 解决方案。 在其中一个窗口上,我添加了一个 DatePicker,并且我希望在两个时刻完成一些操作: 当窗口加载时 当日期我...
我最近将项目从 .NET 4.8.1 迁移到 .NET 8。在我的项目中,我在 Themes.Generic.xaml ResourceDictionary 中实现了一个自定义控件,并且 C# 实现包含
我有一个使用Smith Html Editor的C#解决方案(我正在使用它的主项目上开发,所以我对这个库不太了解),它引用了MSHTML。这个工作...
WebView2 EnsureCoreWebView2Async 永远不会返回
在我的 WPF 应用程序中,我需要显示一个 html 字符串,并且我知道我需要在调用 NavigateToString 之前调用 EnsureCoreWebView2Async 方法,否则 CoreWebView 将为 null 并且我
C# HttpClient.PostAsync 并等待应用程序崩溃
我对 C# 还很陌生。我使用await 关键字来调用HttpClient 的API。 静态异步任务 CreateChannel(string channelName) { 尝试 { HttpClient客户端...
我有一个 WPF 应用程序,其中数据库视图显示在 DataGrid 中。我实现了分页。当我转到下一页时,我查询数据库并刷新视图模型中的 ObservableCollection。最新...
我正在尝试直接在主目录中加载项目中的图标。 为了做到这一点,我这样做: Dim uriSrc As Uri = New Uri("pack://ELE100WalkerWPF:,,,/ assemblyName;Component/Show...
我有以下目录结构 项目 \图片 +视图.png 控制.xaml 在控件中,我有一个由以下 XAML 定义的按钮: 我有以下目录结构 Project \Images +view.png control.xaml 在控件中我有一个由以下 XAML 定义的按钮: <Button Click="Search" Grid.Column="1" Margin="0,5,5, 0" HorizontalAlignment="Right"> <Button.Template> <ControlTemplate TargetType="{x:Type Button}"> <Image Source="pack://application:,,,/images/view.png" Width="16" Height="16" ToolTip="Search" Cursor="Hand" Opacity="0.8" /> </ControlTemplate> </Button.Template> </Button> 但是,此 pack URI 方法和“/images/view.png”都不起作用。据我了解,这与这个问题提出了同样的问题。但是,我遇到了同样的错误。令人困惑的是,在 Visual Studio 2008 的设计器中,图像渲染正确,但在调用 InitializeComponent() 时,我得到: 无法将属性“Source”中的字符串“pack://application:,,,/images/view.png”转换为“System.Windows.Media.ImageSource”类型的对象。无法找到资源“images/view.png”。标记文件“RecapSpecEditControl;component/modaltreadgroupdatadialog.xaml”第 61 行第 40 行中的对象“System.Windows.Controls.ControlTemplate”出错。 我想也许有一个我必须声明的命名空间,但根据 msdn 网站我相信我不必做类似的事情。 我实际上做到了这一点,但必须将我的源设置为/ProjectName;component/images/view.png因为我将ProjectName作为引用的程序集,所以它与我在问题中引用的msdn页面上的Path:部分相同。 将“view.png”的构建操作设置为资源而不是内容,这个问题就会消失。我能够通过这种方式重现您的问题,并且当设置为资源时它可以正常工作。 Xaml.VB 从应用程序文件夹和设计页面调用图像 Private Sub LoadImages() Dim strUri As String strUri = AppDomain.CurrentDomain.BaseDirectory() & "\NavigationImages\settingsicon.png" Image2.Source = New BitmapImage(New Uri(strUri)) End Sub Xaml.VB 中的页面加载 Call LoadImages() Xaml 设计页面 Image Name="Image2"Height="32" HorizontalAlignment="Left"
在 WPF 中,当我使用 Ctrl+Tab 在 TabControl 的选项卡之间切换时,一切按预期工作,在每个选项卡之间切换。但是,当父选项卡内有嵌套选项卡时,这些嵌套选项卡
在 C# 和 WPF 中,我有一个在数据模板中创建的按钮。当我为按钮命名时,它无法识别或在后面的代码中看不到使用它。 我正在尝试在数据中添加一个按钮
我为列表框创建了以下样式,该列表框将在某些文本旁边显示图像: <Setter Property="</desc> <question vote="24"> <p>我为列表框创建了以下样式,该列表框将在某些文本旁边显示图像:</p> <pre><code><Style x:Key="ImageListBoxStyle" TargetType="{x:Type ListBox}"> <Setter Property="SnapsToDevicePixels" Value="true"/> <Setter Property="BorderThickness" Value="1"/> <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/> <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/> <Setter Property="ScrollViewer.CanContentScroll" Value="True"/> <Setter Property="ItemContainerStyle"> <Setter.Value> <!-- Simple ListBoxItem - This is used for each Item in a ListBox. The item's content is placed in the ContentPresenter --> <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="SnapsToDevicePixels" Value="true"/> <Setter Property="OverridesDefaultStyle" Value="true"/> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}"> <Grid SnapsToDevicePixels="true"> <Border x:Name="Border"> <Grid Height="40"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Image x:Name="DisplayImage" Source="{Binding Path=ThumbnailImage}" Height="30" Width="30" Grid.Column="0"/> <ContentPresenter x:Name="DisplayText" HorizontalAlignment="Stretch" VerticalAlignment="Center" Grid.Column="1"/> <!--<ContentPresenter.Resources> <Style TargetType="{x:Type TextBlock}"> <Setter Property="Foreground" Value="Black"/> </Style> </ContentPresenter.Resources>--> <!--Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ListBox}, Path=DisplayMemberPath, Converter={StaticResource myDisplayMemberConverter}}"--> <!--<Label x:Name="Text" Content="{Binding Path=FullNameAndTitle}" Foreground="Black" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" VerticalContentAlignment="Center" HorizontalAlignment="Stretch" Grid.Column="1" Height="40"/>--> </Grid> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <!--<Setter Property="FontWeight" Value="Bold" TargetName="DisplayText"/>--> <!--<Setter Property="Style" Value="{StaticResource SelectedTextStyle}" TargetName="DisplayText"/>--> <Setter Property="Background" Value="DarkBlue" TargetName="Border"/> <Setter Property="Width" Value="40" TargetName="DisplayImage"/> <Setter Property="Height" Value="40" TargetName="DisplayImage"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBox}"> <Grid> <Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="{TemplateBinding BorderThickness}"> <Grid> <ScrollViewer Margin="1,1,1,1" Focusable="false" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> <StackPanel IsItemsHost="true"/> </ScrollViewer> </Grid> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsGrouping" Value="true"> <Setter Property="ScrollViewer.CanContentScroll" Value="false"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </code></pre> <p>我必须使用 contentpresenter,因为我正在使用 ListBox 本身的 DisplayMemberPath 过滤显示的内容(文本方面)。</p> <p>我想要做的就是在列表框中选择一个项目时将 FontWeight 设置为粗体并将前景设置为白色。</p> <p>有人遇到过这样的问题吗?我已经查看了一些相关问题,但人们已经能够使用 TextBlock 来解决他们的问题,不幸的是我不能。</p> <p>任何人可以提供的信息将不胜感激。</p> <p>干杯</p> </question> <answer tick="true" vote="56"> <p>还有另一种方法。您可以在您的<pre><code>ContentPresenter</code></pre>中添加此属性</p> <pre><code>TextBlock.Foreground="YourColour" </code></pre> <p>在这种情况下,您还可以在该属性上使用动画。</p> </answer> <answer tick="false" vote="23"> <p>没关系,我自己已经设法回答这个问题,我试图修改 contentpresenter 的前景/字体粗细,它不包含前景/字体粗细的定义,我只需要做的是:</p> <pre><code><Setter Property="FontWeight" Value="Bold"/> <Setter Property="Foreground" Value="White"/> </code></pre> <p>即删除:</p> <pre><code>TargetName="DisplayText" </code></pre> </answer> <answer tick="false" vote="12"> <p>基于<a href="https://stackoverflow.com/questions/401600/how-do-i-change-the-fontfamily-on-a-contentpresenter">此相关答案</a>,我能够通过以下方式解决类似的问题:</p> <pre><code><Setter TargetName="ctContentPresenter" Property="TextBlock.Foreground" Value="{StaticResource StyleForeColorBrush}" /> </code></pre> </answer> <answer tick="false" vote="2"> <pre><code> <Storyboard x:Key="Storyboard1"> <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="myContentPresenter"> <EasingColorKeyFrame KeyTime="0" Value="Black"/> <EasingColorKeyFrame KeyTime="0:0:0.2" Value="White"/> </ColorAnimationUsingKeyFrames> </Storyboard> </code></pre> </answer> <answer tick="false" vote="0"> <p>我用这个方法解决了我同样的问题</p> <p>添加文本块,然后在其上使用颜色 然后将其设为内容</p> </answer> </body></html>
我正在构建一个通知弹出窗口以在我的项目中使用。 (C# WPF .NET)。 我已经构建了一个用户控件,我想将其显示在右上角,非常像 SweetAlert2,但是对于我的 c# 项目...
我有一个WPF应用程序。我正在使用.NET 6。 我的 RibbonButton 控件中需要有两行文本。 这就是我目前正在做的事情: 我有一个 WPF 应用程序。我正在使用 .NET 6。 我的 RibbonButton 控件中需要有两行文本。 这就是我目前正在做的事情: <RibbonButton x:Name="rbName" LargeImageSource="../Resources/broom-3w.png" ToolTip="{Binding RibBtnToolTip}" Command="{Binding RibBtnCommand}" Label ="{Binding LblContent}"> </RibbonButton> 这会显示文本,但它的格式对我来说不正确。 文本会中断,但它在所有 RibbonButton 中并不一致,即它并不总是在我需要的地方中断。 文本也居中对齐。 我试过把' ' 在标签字符串中,但在 ' 之后不会显示任何文本 '. 我尝试添加一个StackPanel和两个TextBlock。 这样做不会出现编译错误,但是根本不显示任何文本,只显示图像。 <RibbonButton x:Name="rbName" LargeImageSource="../Image.png" ToolTip="{Binding RibBtnToolTip}" Command="{Binding RibBtnCommand}"> <RibbonButton.Content> <StackPanel> <TextBlock Text="{Binding Lbl1}"/> <TextBlock Text="{Binding Lbl2}"/> </StackPanel> </RibbonButton.Content> </RibbonButton> RibbonButton控件使用RibbonTwoLineText来显示文本。该属性的 HorizontalAlignment 属性在默认模板中设置(硬编码)为 Center。要更改它,您可以定义自己的自定义模板或在运行时动态设置属性。您可能还想减少默认设置为 LineHeight 的 13 属性: private void rbName_Loaded(object sender, RoutedEventArgs e) { RibbonButton btn = (RibbonButton)sender; RibbonTwoLineText text = btn.Template.FindName("TwoLineText", btn) as RibbonTwoLineText; if (text != null) { text.HorizontalAlignment = HorizontalAlignment.Left; text.LineHeight = 8; } } XAML: <RibbonButton x:Name="rbName" Loaded="rbName_Loaded" LargeImageSource="..." /> 默认情况下,LargeImageSource 的大小为 32x32,RibbonButton 控件的总高度为 66。
我有一个字符串数组。 我需要创建一个列表框,在左侧显示这些字符串,在右侧显示它们的长度。所有这些,四个项目上有交替颜色,并且必须用
如何使用MvvmCross在WPF应用程序中获取命令行参数?
我正在尝试使用 MvvmCross 将命令行参数传递到我的 WPF 应用程序。 我想访问 MainViewModel 中的参数。 与重写 OnStartup() 方法类似...
如何使用.NET 6 WPF使用EPSON TM-T70II打印票据?
我正在尝试创建一个使用 .NET 6 WPF 打印票据的程序。运行程序后,文档出现在打印队列中,但只打印一张空白页。我也尝试过使用重新...