Tag: wpf

C#中出错:“非静态字段,方法或属性需要对象引用”

我在WPF中编写代码。 首先,我编写了一个单独的项目来测试使用COM端口设备的工作,它运行良好。 接下来我决定将它集成到另一个项目中,但是我收到了一个错误。 我没有改变代码; 我只是将它复制到一个新的代码文件中。 这段代码效果很好: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.IO.Ports; using System.Windows.Threading; namespace WpfApplication2 { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() […]

如何让ToolTip绑定与ComboBox一起使用?

目前我有一个ComboBox定义为: 一切都有效,除了工具提示。 它应该绑定的属性; ToolTip包含一个值。 我确定这一点,因为当我执行以下操作时,我看到一个结果确认ToolTip包含一个值: 用ToolTip替换了Description ,我可以看到ToolTip的值出现在屏幕上。 然而 ToolTip=”{Binding Path=ToolTip}” 仍然不起作用。 如果我尝试按如下方式显示ToolTip: ToolTip=”ToolTip” 它只显示“工具提示”一词。 如何让ToolTip显示值?

MVVM Light Messenger Class

任何人都可以提供关于如何在MVVM Light中使用信使类的样本/链接/简单插图/video/演示吗?

将零值格式化为空字符串?

我第一次涉足WPF字符串格式时遇到了困难。 我希望能够在基础值为零时使用空字符串格式化数据网格中的文本框列,并将所有其他值格式化为0.000。 但是,我的XAML似乎不能胜任工作,因为它显示所有值的空白而不仅仅是零: 我正在使用此处所述的分号运算符,并在第二个分号后添加了一个空格以获取空字符串。 非常感谢! 更新 这样做的诀窍:

WPF:如何使RichTextBox看起来像TextBlock?

如何使RichTextBox没有边距,边框,填充等? 换句话说,以与TextBlock相同的方式显示内容呢? 我试过这个: LLL LLL 但结果产生的仍然不是我想要的: 在文档内容之前还有一些空间(也可能在文档的顶部或底部之后……)。 我该如何删除它? 如果你有兴趣为什么我需要这个:我试图让HB回答我的问题在WPF中创建吉他和弦编辑器来处理字距并且我不希望在字符之间有不自然的空间。 编辑 所以至少不仅仅是ControlTemplate ,因为下面的代码会产生完全相同的结果(如上图所示): LLL 我觉得这个问题很容易回答…… 有趣的观察:当我有模板集并在FlowDocument上设置PagePadding=”0″ , 它会在VisualStudio设计器中显示我想要的布局 – 直到我运行演示 。 在演示中再次出错……当我关闭演示时,设计师再次出错了。 这是VS的一个小错误,或者它实际上设置为正确的布局一段时间但是有些东西会将PagePadding值更改回某个错误的值? 编辑#2 丹尼尔罗斯的编辑答案也不适用于我。 这是XAML: hello 这是代码: public static DependencyProperty PagePaddingProperty = DependencyProperty.Register(“PagePadding”, typeof(Thickness), typeof(EditableTextBlock), new PropertyMetadata(new Thickness(0))); public Thickness PagePadding { get { return (Thickness)GetValue(PagePaddingProperty); } set { SetValue(PagePaddingProperty, value); } } 结果没有变化 。 […]

C#,WPF,MVVM和INotifyPropertyChanged

我感到困惑; 我以为我理解了INotifyPropertyChanged。 我有一个小的WPF应用程序,前端是MainWindow类,中间有一个视图模型,后面有一个模型。 在我的例子中,模型是Simulator类。 SimulatorViewModel几乎是透明的,只是MainWindow和Simulator之间的接口属性。 Simulator实现了INotifyPropertyChanged,Simulator中的每个属性setter都调用了RaisePropertyChanged方法: private string serialNumber; public string SerialNumber { get { return serialNumber; } set { serialNumber = value; RaisePropertyChanged(“SerialNumber”); } } public event PropertyChangedEventHandler PropertyChanged; public void RaisePropertyChanged(string propName) { if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs(propName)); } } 在xaml中,我有一个带有这样绑定的TextBox: Text=”{Binding Path=SerialNumber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}” DataContext是SimulatorViewModel(但请参阅我关于将DataContext更改为模型的注释) ViewModel只传递属性: public string SerialNumber […]

如何在Visibility属性上执行简单的XAML(WPF)条件绑定

我有一个带有属性的视图模型: public class MyModel { public bool IsEnabled {get;set;} } 我想使用此属性来切换按钮状态。 如果布尔值为true,我想隐藏按钮,否则显示它。 我尝试过这样的事情: Enable 但这不合适。 我尝试了一些更复杂的解决方案,但我的猜测是,我错过了一些微不足道的东西。 有什么建议?

WPF:带重置项的ComboBox

我想在WPF中创建一个顶部有一个null项的ComboBox,当选中此项时,SelectedItem应设置为null(重置为默认状态)。 我一直在搜索,但没有找到令人满意的解决方案。 如果可能的话,我希望它只使用XAML代码或附加行为来实现,因为我不喜欢在ViewModel中为View更改内容,或者重写标准控件。 这是我到目前为止提出的(缩短代码): […] (None) […] 我认为最好的方法是以某种方式添加一个事件触发器,当项目被选中时将SelectedIndex设置为-1 ,但这里是我遇到的问题。 任何想法如何做到这一点? 或者更好的方式,如附加行为?

基于LINQ中的组的字段连接

我希望根据使用LINQ对Userid和dates字段进行分组来连接一个时间字段。 我正在使用VS2010 C#(WPF)。 我有一个以下格式的集合。 并希望得到结果

一个属性上的多个故事板

我有多个故事板可以访问同一个属性(不是同时)。 在一个故事板改变了属性之后,另一个故事板似乎无法访问它并且不会改变任何东西。我能做些什么呢? 样品: hey du dux duy dua 这是我能做的最小的示例代码。 在您hover某个项目后,它会在选中时变为蓝色(尝试单击一个项目,然后使用箭头键选择项目而不hover它们)。