小编Hac*_*rth的帖子

找不到名为'X'的资源,为什么不呢?

我想为库存管理创建一个向导UI.xaml中的相关行是:

<ContentPresenter Content="{Binding Current}" ContentTemplateSelector="{StaticResource inventorySelector}"/>
Run Code Online (Sandbox Code Playgroud)

"当前"是当前活动的视图模型,其中包括AvailableInventoriesViewModel,GroupsViewModel,NewArticlesViewModel,ResultViewModel.我已经定义了DataTemplateSelector:

using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using Centron.WPF.WarehousingExtension.InventoryModule.ViewModels.WizardViewModels;

namespace Centron.WPF.WarehousingExtension.InventoryModule.UI.DataTemplateSelectors
{
    public class InventoryDatatemplateSelector : DataTemplateSelector
    {
        public DataTemplate AvailableDatatype { get; set; }
        public DataTemplate GroupsDatatype { get; set; }
        public DataTemplate NewDatatype { get; set; }
        public DataTemplate ResultDatatype { get; set; }

        public InventoryDatatemplateSelector()
        {
            Debug.WriteLine("");
        }

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            if (item is AvailableInventoriesViewModel)
                return AvailableDatatype;
            else if (item is GroupsViewModel)
                return GroupsDatatype;
            else if …
Run Code Online (Sandbox Code Playgroud)

wpf xaml mvvm

8
推荐指数
2
解决办法
2万
查看次数

C#事件系统对于单线程程序是否具有确定性?

可能重复:
事件处理程序执行顺序

C#事件系统对于单线程程序是否具有确定性?这意味着,如果我按此顺序触发事件A,B和C,它们每次都会以相同的顺序处理吗?

我想编写一个严重依赖事件的游戏逻辑,并且事件的处理顺序与调用它们的顺序至关重要.那么我可以使用给定的事件系统,像Reactive Extensions这样的库是否满足这个要求,还是我必须实现自己的观察者系统?

c# events

7
推荐指数
1
解决办法
295
查看次数

如何覆盖ControlTemplate中的属性?

我有以下XAML:

<Window x:Class="WpfTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="227" Width="391">
    <Window.Resources>
        <ControlTemplate x:Key="PentagonButton" TargetType="{x:Type Button}">
            <Grid>
                <Path Data="M 0,-1 L -.95,-.3 L -.58,.8 L .58,.8 L .95,-.3 Z" Stroke="Black" Stretch="Uniform" Fill="Red" />
                <Viewbox>
                    <ContentPresenter Margin="20" />
                </Viewbox>
            </Grid>
        </ControlTemplate>
    </Window.Resources>
    <Grid>
        <Button Content="red" Margin="12,19,0,0" Template="{StaticResource PentagonButton}" HorizontalAlignment="Left" Width="166" Height="151" VerticalAlignment="Top" />        
        <Button Content="blue" Margin="178,19,0,0" Template="{StaticResource PentagonButton}" Height="151" VerticalAlignment="Top" HorizontalAlignment="Left" Width="173" />        
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

由于Fill ="Red",显然所有按钮都有红色填充/背景颜色.我想将这个模板用于几个按钮,但每个按钮都有不同的填充颜色,在设计时已知.设置背景颜色无效,因此我必须更改填充颜色,但我无法在实际按钮定义中再次定义Path属性.如何在XAML中访问和覆盖此属性?

c# wpf

5
推荐指数
1
解决办法
5615
查看次数

TextBox并不总是更新

我有以下TextBox:

<TextBox Text="{Binding SearchString,
               UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)

绑定到以下属性:

private string _searchString;
public string SearchString
{
    get 
    { 
        return _searchString; 
    }
    set
    {
        value = Regex.Replace(value, "[^0-9]", string.Empty);             
        _searchString = value;
        DoNotifyPropertyChanged("SearchString");
    }
}
Run Code Online (Sandbox Code Playgroud)

该类继承自实现的基类 INotifyPropertyChanged

public event PropertyChangedEventHandler PropertyChanged;
protected void DoNotifyPropertyChanged(string propertyName)
{
    if (PropertyChanged != null) 
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
Run Code Online (Sandbox Code Playgroud)

我只想要一个快速而肮脏的方法来禁止非整数文本框的非数字字符(我知道它不完整,只是为了演示).我不想仅仅通知有非法文本或任何内容,我想立即丢弃所有不允许输入的字符.

但是,TextBox表现得很奇怪.我仍然可以输入我想要的任何文字,它将显示为输入,例如"1aaa".即使在此示例中已将属性正确清除为"1",文本框仍显示"1aaa".只有当我输入一个会导致_searchString更改的实际数字时,它才会更新显示的文本,例如当我有"1aaa2"时它会正确地更新为"12".这是怎么回事?

c# wpf mvvm

5
推荐指数
1
解决办法
344
查看次数

如何使用XSLT将Richtext图像从标准WPF RichTextBox转换为HTML?

如何使用XSLT将Richtext图像从标准WPF RichTextBox转换为HTML?

根据这个答案,我制作了以下XSLT文件.到目前为止,它转换为粗体,斜体,下划线,字体系列,字体大小和字体颜色.现在我仍然需要它将Richtext中的图像转换为HTML.

不必考虑图像对齐.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    exclude-result-prefixes="msxsl x">

  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

  <xsl:template match="x:Section[not(parent::x:Section)]">
    <div>
      <xsl:apply-templates select="node()"/>
    </div>
  </xsl:template>

  <xsl:template match="x:Section">
    <xsl:apply-templates select="node()"/>
  </xsl:template>

  <xsl:template match="x:Paragraph">
    <p>
      <xsl:apply-templates select="node()"/>
    </p>
  </xsl:template>

  <xsl:template match="x:Run">
    <xsl:variable name="style">
      <xsl:if test="@FontStyle='Italic'">
        <xsl:text>font-style:italic;</xsl:text>
      </xsl:if>
      <xsl:if test="@FontWeight='Bold'">
        <xsl:text>font-weight:bold;</xsl:text>
      </xsl:if>
      <xsl:if test="contains(@TextDecorations, 'Underline')">
        <xsl:text>text-decoration:underline;</xsl:text>
      </xsl:if>
      <xsl:if test="@FontSize != ''">
        <xsl:text>font-size:</xsl:text>
        <xsl:value-of select="@FontSize" />
        <xsl:text>pt;</xsl:text>
      </xsl:if>
      <xsl:if test="@FontFamily != ''">
        <xsl:text>font-family:</xsl:text>
        <xsl:value-of select="@FontFamily" />
        <xsl:text>;</xsl:text>
      </xsl:if>
      <xsl:if test="@Foreground != ''"> …
Run Code Online (Sandbox Code Playgroud)

html c# xslt wpf richtextbox

5
推荐指数
1
解决办法
415
查看次数

标签 统计

c# ×4

wpf ×4

mvvm ×2

events ×1

html ×1

richtextbox ×1

xaml ×1

xslt ×1