wpf 相关问题

Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。

在WPF中使用行为绑定DataGrid的SelectedItems不起作用

我的想法是使用行为来绑定DataGrid的SelectedItems。我创建了一个名为 DataGridSelectItemsBehavior 的行为。有一个名为 MySlectItemsProperty 的依赖属性。我是

回答 1 投票 0

WPF Button DataTrigger 在属性更改时不更新内容

我正在为学校项目开发 WPF 电影数据库应用程序,我有一个按钮,我想在其中根据 SelectedFilm 对象的 bool 属性 IsFavorite 切换 Button 的内容。当

回答 1 投票 0

WPF 应用程序中的 Web 浏览器控件没有空域问题?

我正在开发一个 WPF 应用程序,它的视图之一中有 Web 浏览器。当我运行应用程序时,它工作正常,但 Web 浏览器控件位于我的 wpf 区域的顶部。我知道这是要做的事

回答 5 投票 0

WPF VirtualizingStackPanel 排序后文本换行问题

我是 WPF 新手,编写此程序是为了帮助组织和编目我的书籍。我使用了虚拟化包裹面板,在我对书籍进行排序之前,该面板可以完美显示。 这是视图预排序:

回答 1 投票 0

如何获取当前行号?

这是我想做的一个例子: MessageBox.Show("错误行号" + CurrentLineNumber); 上面代码中的CurrentLineNumber,应该是这个p的源代码中的行号...

回答 7 投票 0

为什么 MouseLeftButtonUp 在 WPF 中不触发?

为什么 Canvas 上的 MouseLeftButtonUp 在我的 WPF 应用程序中没有触发? 这是 XAML: 为什么 Canvas 上的 MouseLeftButtonUp 在 WPF 应用程序中没有触发? 这是 XAML: <Grid Height="300" Width="400"> <Canvas Name="canvas" MouseMove="canvas_MouseMove" MouseLeftButtonUp="canvas_MouseLeftButtonUp" Background="LightGray"/> </Grid> 代码: private bool hasClicked = false; public Window1() { InitializeComponent(); } private void canvas_MouseMove(object sender, MouseEventArgs e) { if (!this.hasClicked) { this.Cursor = Cursors.None; this.canvas.Children.Clear(); this.insertRectangle(false); } } private void insertRectangle(bool filled) { Rectangle rect = createRect(filled); Point pos = Mouse.GetPosition(this.canvas); Canvas.SetLeft(rect, pos.X); Canvas.SetTop(rect, pos.Y); this.canvas.Children.Add(rect); } private Rectangle createRect(bool fill) { Rectangle rect = new Rectangle(); rect.Height = 50; rect.Width = 120; if (fill) { rect.Fill = new SolidColorBrush(Colors.Green); } else { rect.Stroke = new SolidColorBrush(Colors.Green); } return rect; } private void canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { this.hasClicked = true; this.insertRectangle(true); this.Cursor = Cursors.Arrow; } 编辑:我尝试向画布添加背景颜色,但事件仍然没有触发。看起来 MouseMove 以某种方式覆盖了 MouseLeftButtonUp。 Edit2:如果我删除 MouseMove 事件,mouseLeftButtonUp 将触发。 Edit3:更大的代码示例。 在insertRectangle方法中,如果我使用 Canvas.SetTop(rect, 50); instead of Canvas.SetTop(rect, pos.Y); 事件发生得很好。 如果你不在画布上设置Background,它似乎不会关注你的鼠标事件。 尝试: <Grid> <Canvas Name="canvas" MouseMove="canvas_MouseMove" MouseLeftButtonUp="canvas_MouseLeftButtonUp" Background="White" /> </Grid> 通过不清除画布,而是在 mouseMove 方法中移动预览矩形解决了问题。 我的解决方案是完全放弃 MouseLeftButtonUp 处理程序,而是对 MouseMove 进行初始检查以查看按钮是否处于释放状态。如果是的话我将拖动设置为 false。 private void Canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { isDragging = true; } private void Canvas_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Released) { isDragging = false; } }

回答 3 投票 0

其中一个 MVVM ViewModel 未收到消息

在一个 MainViewModel 中我发送一条消息: 私有无效 TextBoxKeyDownVMMethod(KeyEventArgs e) { if (e.Key == Key.Enter) { MessengerInstance.Send 在一个 MainViewModel 中我发送一条消息: private void TextBoxKeyDownVMMethod(KeyEventArgs e) { if (e.Key == Key.Enter) { MessengerInstance.Send<Messages.WebTab.NavigatingToPageArgs>(new NavigatingToPageArgs { UrlForNavigating = "http://stackoverflow.com/questions/11485897/viewmodel-doesnt-receive-message-in-mvvm-light" }); //GoToPageInSelectedTabVMCommand.Execute((object)null); Keyboard.ClearFocus(); } } 在另一封邮件中我收到了它: public WebTabItemVievModel() { MessengerInstance.Register<NotificationMessage<Messages.WebTab.NavigatingToPageArgs>>(this, _MessageHandler_NavigatingToPage); } private void _MessageHandler_NavigatingToPage(NotificationMessage<NavigatingToPageArgs> args) { GoToPageCommand.Execute(args.Content.UrlForNavigating); } WebTabItemVievModel 在 MainViewModel 的构造函数中创建为 ObservableCollection, 这个集合是选项卡控件的 ItemsSource public MainViewModel() { WebTabItems = new ObservableCollection<WebTabItemVievModel>(); WebTabItemVievModel tabItem; tabItem = ServiceLocator.Current.GetInstance<WebTabItemVievModel>(); tabItem.Header = "Empty tab"; WebTabItems.Add(tabItem); tabItem = new WebTabItemVievModel { Header = "Empty tab" }; WebTabItems.Add(tabItem); tabItem = new WebTabItemVievModel { Header = "Empty tab" }; WebTabItems.Add(tabItem); tabItem = new WebTabItemVievModel() { AddNewTabOnTabHeaderClick =true}; WebTabItems.Add(tabItem); } WebTabItemVievModel 有自己的用于可视化的 UserControl,它通过 MainWindow.xaml 中的资源定义进行绑定: <Window.Resources> <DataTemplate DataType="{x:Type vm:WebTabItemVievModel}" > <v:WebTabItemContentViev></v:WebTabItemContentViev> </DataTemplate> </Window.Resources> Locator 在注册时已经有 true 参数。它没有改变任何东西: SimpleIoc.Default.Register<WebTabItemVievModel>(true); SimpleIoc.Default.Register<MainViewModel>(true); 谁知道为什么 WebTabItemVievModels 不接收消息? 注册类型时 通知消息 但是发送时类型是 Messages.WebTab.NavigatingToPageArgs 使类型相同,它应该可以工作

回答 1 投票 0

如何使用 MVVM 在 WPF 中正确实现导航侧边栏菜单(+找出更改应用程序中视图的正确方法)?

如果有人可能觉得标题令人困惑,我想道歉,我在这里描述的问题比我想象的要复杂,我很难在标题中总结它。 基础...

回答 1 投票 0

如何在wpf中实现OxyPlot DPI感知?

我有一个wpf应用程序DPI,在清单文件中包含以下代码: 我有一个 wpf 应用程序 DPI 感知,并在清单文件中包含此代码: <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware> <!--<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>--> <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2,PerMonitor</dpiAwareness> <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware> </windowsSettings> </application> 我正在使用 OxyPlot.Wpf 制作一些绘图,但如何使绘图与任何显示器和 DPI 配置相同。 例如: 在此输入图片描述 在此输入图片描述 左图分辨率为1920x1080,缩放比例为100%,右图分辨率为2880x1800,缩放比例为175%。 右图变形了。三角形必须是等边三角形,五边形也必须是所有边都相等。 怎样才能在任何显示器上做到如左图所示? 我必须安装 OxyPlot.SkiaSharp.Wpf 软件包吗? 问题是我的 MainWindow(PlotView 的容器)有一个 LayoutTransform: Me.Scrll.LayoutTransform = New ScaleTransform(ScaleX, ScaleY) 所以,我放入 PlotView: Plot.LayoutTransform = New ScaleTransform(1 / ScaleX, 1 / ScaleY) 这样,两个显示器中的图都不会变形。

回答 1 投票 0

格式化富文本框而不选择

我想通过两种方式更改 Richtextbox 中的格式: 选择文本 => 文本应重新调整大小。这很好用。 未选择文本,只是在文本之间设置了插入符号光标。 => 字体-

回答 1 投票 0

.NET WPF 应用程序的运行时本地化

我正在本地化一个用 C# 编写的旧软件应用程序。它是一个 .NET WPF 应用程序,使用两个 XAML 窗口作为 GUI。我创建了一个 LocalizationManager 类来处理翻译...

回答 1 投票 0

按钮悬停时,文本块需要在 c# 中显示一些文本

我有一个按钮。当鼠标悬停在按钮上时,我的项目中使用的文本块应该显示一些值。按钮是在库和我在项目中使用的库中定义的。在我的项目中我

回答 1 投票 0

CefSharp WPF 升级还需要参考吗?

我有一个使用 WPF 的 CefSharp 项目,我正在将我的参考从 105.3.390 升级到 119.4.30(这些是我需要的特定版本,基于托管我的代码的程序)。 为什么我升级我得到...

回答 1 投票 0

此平台不支持 .NET Core 6 中的 Stimulsoft 报告操作

我在 .NET Core 6 和 Visual Studio 2022 中使用 C# WPF。 我已将 StiReport.dll 添加到我的项目中,但此代码出现错误: 公共主窗口() { 初始化组件(); 变量报告 = ...

回答 2 投票 0

使用SelectedValue和SelectedValuePath时性能极差

我发现ListView和DataGrid在更新绑定的ItemsSource时性能都非常差。只有大约 1500 个项目,在安静的情况下仍然需要近 10 秒

wpf
回答 1 投票 0

WPF中不指定控件名称...性能影响

如果需要从后台代码访问 WPF 控件,则需要在 XAML 中为其提供 Name 属性。 在许多情况下,您不需要从后面的代码访问控件,因为很多 c...

回答 2 投票 0

在WPF中调整列表视图高度到网格

我有一个网格,在这个网格内部,有一个边框。边框内有一个ListView。我的问题是 ListView 不会根据边框的高度激活垂直滚动。我...

回答 1 投票 0

使用其名称从基于它的样式访问样式 ControlTemplate 中的元素

我有一个按钮的样式,比如 ButtonStyle,里面有 VisualStates、属性和触发器。我有另一种基于 ButtonStyle 的样式。我需要访问一个名为“OnhoverGrid”的元素...

回答 1 投票 0

如何在WPF中使用DockStyle.Fill作为标准控件?

我从 Windows 窗体中使用,我创建一个面板,将控件放置在其中并为它们提供 DockStyle.Fill 以最大程度地扩大其周围面板的大小。 在 WPF 中我想要同样的。我有一个

回答 5 投票 0

DataGrid 列宽不会自动更新

当 Change 的值更新时,其列不会更新为 fi...

回答 6 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.