Tag: 样式

WPF – 改变代码背后的样式

我有一个列表框,显示TFS查询的结果。 我想在后面的代码中更改ListBoxItem的样式,以获得包含在查询结果中的列。 ListBoxItem的样式在我的Windows.Resoruces部分中定义。 我试过这个: public T GetQueryResultsElement(string name) where T : DependencyObject { ListBoxItem myListBoxItem = (ListBoxItem)(lstQueryResults.ItemContainerGenerator.ContainerFromIndex(0)); // Getting the ContentPresenter of myListBoxItem ContentPresenter myContentPresenter = myListBoxItem.Template.LoadContent().FindVisualChild(); // Finding textBlock from the DataTemplate that is set on that ContentPresenter DataTemplate myDataTemplate = myContentPresenter.ContentTemplate; <——+ T myControl = (T)myDataTemplate.FindName(name, myContentPresenter); | | return (T)myControl; | } […]

在WPF中的code-beind中为ListBox创建ItemTemplate

我正在尝试以编程方式为ListBox创建一个ItemTemplate,但它不起作用。 我知道在XAML中我可以有类似的东西: 但是当我试图以编程方式获得上述结果时,我遇到了一个绑定TextBox.TextProperty的问题: var textblock = new FrameworkElementFactory(typeof(TextBlock)); // Setting some properties textblock.SetValue(TextBlock.TextProperty, ??); var template = new ControlTemplate(typeof(ListBoxItem)); template.VisualTree = textblock; 请帮我解决这个问题。 我在网上找不到任何关于它的东西。 提前致谢。

不同选定项目的WPFcombobox背景

我有4个项目的Combobox:Planing,Progress和Done, 如何更改ComboBox的背景颜色(由defult Gradiant决定)取决于选择了哪个项目。 例如:紫色表示刨光,蓝色表示进度,绿色表示完成。 注意:我的意思是ComboBox背景,而不是ComboBox项目列表。 谢谢

如何更改WPF中绑定选项的默认值?

在我当前的项目中,我使用了几个文本框控件,其内容由来自数据库的对象填充。 该对象使用validation来validation文本的正确插入。 当我想显示validation错误(即文本有多个字符)时,我必须向text属性添加一些绑定选项,如下一行所示: 是否可以创建模板或样式或任何将最后三个选项(ValidatesOnDataErrors,NotifyOnValidationError,UpdateSourceTrigger)的默认值更改为上面代码中的值? 文本框控件应该如下所示:

如何在C#中应用Word快速风格 – 不只是简单的格式化而是整个风格?

我承认,我对使用Interop库非常陌生,但人们总是给出的建议是,记录一个宏并查看vba代码。 问题是,宏没有准确记录我正在做的事情: 单击快速样式将其应用于当前选择 。 我的任务非常简单: 我需要将快速样式应用于段落( Microsoft.Office.Interop.Word.Paragraph ) 。 但是,使用set_style命令仅应用基本格式,并且段落保持原始快速样式选择( 正常 )。 使用Remou的方法虽然对我有用,但它看起来与我自己的代码非常相似,我无法使其工作,我认为这可能是我对对象模型的理解有点过时了。 public void AddParagraph(string text, string styleName = null) { Paragraph paragraph = _document.Content.Paragraphs.Add(); if (styleName != null) { paragraph.Range.set_Style(_document.Styles[styleName]); } paragraph.Range.Text = text; paragraph.Range.InsertParagraphAfter(); } 然后我用例如AddParagraph(“A title”, “Heading 1”);调用它AddParagraph(“A title”, “Heading 1”); ,但使用上面的包装器来构建我的文档的结果是,没有应用完整的样式,只有字体,颜色,大小和粗体/斜体。 我正在使用我自己的.dotx文件,我自己定义和命名的样式,但只是从Remou复制代码使用我自己的模板,所以我不认为这是问题,并使用该代码我无法弄清楚如何使用各自的样式附加多个段落。 任何人都可以指出我的方法有什么问题,或者至少我如何能够让Remou为我的要求提供答案? 🙂

如何将MouseDown事件放入样式中?

这有效: XAML: 代码背后: using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace Test239992 { public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void Handle_Click(object sender, MouseButtonEventArgs e) { int id = Int32.Parse(((TextBlock)sender).Tag.ToString()); MessageBox.Show(“you chose id ” + id.ToString()); } } } 但是我如何将MouseDown事件放在一个样式中 ,这给了我错误 “无法在类型’System.Windows.Controls.TextBlock’上找到样式属性’MouseDown’”:

Background属性不指向路径’(0)中的dependencyobject。(1)’

我写了这段代码并得到了一个例外: Background属性不指向路径’(0)中的dependencyobject。(1)’ 我在论坛的其他post中看到了这个问题,但没有找到解决方案。 对此有何帮助?

WPF中的平面按钮 – 触发不触发

我想让我的按钮更平坦,所以我创造了两种风格; 第一个用于ToggleButton ,它派生自ToolBar.ToggleButtonStyleKey ,第二个用于派生自ToolBar.ButtonStyleKey Button 。 它工作得很好 – 按钮现在是工具栏般的平面。 我想要的第二件事是当用户将光标hover在控件上时使Background属性透明。 所以为了实现这个目的,我定义了一个简单的触发器,它将Background设置为Transparent的IsMouseOver事件。 它适用于ToggleButton ,然而,同样的触发器对Button不起作用(背景根本没有受到影响)。 有谁知道为什么这个触发器适用于ToggleButton并且不适用于Button ? 我确实期望相同的行为,因为两种风格都来自同一个家庭。 以下是完整的代码。 I am Toggle Button I am Button

DataGridView单元格对齐将无法工作

我有一个我在C#Winforms项目中使用的DataGridView。 网格不会自动生成列。 我手动设置了列名和属性。 这包括单元格的DefaultCellStyle。 我希望所有类型为DataGridViewCheckBoxColumn的单元格都居中对齐。 我已在设计器中为此类型的每个列手动设置此对齐方式。 加载datagridview时,这些更改不会显示。 作为我的下一个方法,我在DataBindingComplete事件中使用了下面的代码(也没有任何效果) foreach (DataGridViewColumn dgvc in this.dgv_Automations.Columns) { if(dgvc.CellType == typeof(DataGridViewCheckBoxCell)) dgvc.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; } 调试时,上面的代码已经将对齐设置为中心。 但是,它仍然没有显示在网格上。 如果在DataBindingComplete事件期间我执行类似这样的操作,我可以使它工作: foreach (DataGridViewRow dgvr in this.dgv_Automations.Rows) { dgvr.Cells[“isErrors”].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; } 但是,我有很多这样的列,这样做真的没有意义。 编辑:我已经用这种方式实现了它,只有大约10行,因为在每个单元格上设置此属性存在非常明显的延迟。 我的问题是:这样做的正确方法是什么? 为什么设计师DefaultCellStyle不起作用?

如何删除ListBoxItem周围的小填充?

我正在设计一个listBox。 我正在尝试清除边距,所以我意识到它,我将样式的填充设置为0(左边填充)。 但我仍然可以看到它的一些余量,我需要没有余量吗? 你知道哪个会出问题吗? … 我的意思是,我可以看到项目周围有一个额外的空间,我无法处理它修改为0。