2010-03-08 92 views
16

我剛開始嘗試使用WPF模板和樣式,我不確定我在做什麼錯誤。下面的目標是交替菜單中選項的顏色。代碼工作正常,只是,但是當我複製並粘貼/重命名爲「MenuChoiceOdd」的第二段時,我得到以下錯誤:WPF模板錯誤 - 「提供'System.Windows.Baml2006.TypeConverterMarkupExtension'值時拋出異常。」

>提供'System.Windows.Baml2006.TypeConverterMarkupExtension'值一個例外。

示例代碼:

<Window x:Class="WpfApplication1.Template_Testing" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Template_Testing" Height="300" Width="300"> 
    <Grid> 
     <Grid.Resources> 
      <ControlTemplate x:Key="MenuChoiceEven"> 
       <Border BorderThickness="1" BorderBrush="#FF4A5D80"> 
       <TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0" Width="Auto" FontSize="14" Foreground="SlateGray" TextAlignment="Left" AllowDrop="True" Text="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}"> 
        <TextBlock.Background> 
         <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
          <GradientStop Color="White" Offset="0" /> 
          <GradientStop Color="#FFC2CCDB" Offset="1" /> 
         </LinearGradientBrush> 
        </TextBlock.Background> 
       </TextBlock> 
       </Border> 
      </ControlTemplate> 
      <ControlTemplate x:Key="MenuChoiceOdd"> 
       <Border BorderThickness="1" BorderBrush="#FF4A5D80"> 
        <TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0" Width="Auto" FontSize="14" Foreground="SlateGray" TextAlignment="Left" AllowDrop="True" Text="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}"> 
        <TextBlock.Background> 
         <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
          <GradientStop Color="White" Offset="0" /> 
          <GradientStop Color="##FFCBCBCB" Offset="1" /> 
         </LinearGradientBrush> 
        </TextBlock.Background> 
        </TextBlock> 
       </Border> 
      </ControlTemplate>    
     </Grid.Resources> 
     <Border BorderBrush="SlateGray" BorderThickness="2" Margin="10" CornerRadius="10" Background="LightSteelBlue" Width="200"> 
      <StackPanel Margin="4"> 
       <TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="2,2,2,0" Name="MenuHeaderTextBlock" Text="TextBlock" Width="Auto" FontSize="16" Foreground="PaleGoldenrod" TextAlignment="Left" Padding="10" FontWeight="Bold"><TextBlock.Background><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="LightSlateGray" Offset="0" /><GradientStop Color="DarkSlateGray" Offset="1" /></LinearGradientBrush></TextBlock.Background></TextBlock> 
       <StackPanel Height="Auto" HorizontalAlignment="Stretch" Margin="2,0,2,0" Name="MenuChoicesStackPanel" VerticalAlignment="Top" Width="Auto"> 
        <Button Template="{StaticResource MenuChoiceEven}" Content="Test Even menu element" /> 
        <Button Template="{StaticResource MenuChoiceOdd}" Content="Test odd menu element" /> 
       </StackPanel> 
      </StackPanel> 
     </Border> 
    </Grid> 
</Window> 

我在做什麼錯?

+0

這將會是方便的,如果該異常包含一個行號...... –

回答

11

Oy公司是星期一......

當我複製從這裏前綴另一個控制它把兩個「##」 S粘貼的顏色字符串:

<GradientStop Color="##FFCBCBCB" Offset="1" /> 

仍然是一個糟糕的錯誤消息。

+0

新手在WPF在這裏,它確實是一個可怕的錯誤消息 – swdev

4

我不得不引起同樣的錯誤:

<Border Margin="5" BorderBrush="Black" BorderThickness="" Width="Auto"/> 

通過把一個數了borderThickness

3

在我的固定的情況下,我改變了項目名稱。我得到這個錯誤。我重新選擇了這些圖像,發現我也需要更改圖像的資源名稱。

 <Image x:Name="imgSrc" Grid.Row="1" Source="/PREV%20-%20Filter;component/Images/Subtraktive%20Farbmischung%20%28Malen%20mit%20Wasserfarben%29.jpg" /> 

/PREV%20-%20Filter;組件需要被校正到/ DSP%20-%20Filter;組分在我的情況。

3

在網格上指定Width =「*」給了我第一次看起來很奇怪的錯誤,但它試圖說的是該標記不能轉換爲實際類型。

6

同樣給他人 - 只是意味着我必須在我的XAML語法錯誤這個可怕的錯誤消息:

<CheckBox Height="" IsChecked="{Binding IsChecked, Mode=TwoWay}" Width="80"> 

通知我沒有在高值填充..

+2

我是相似的,但因爲我做了Command Command =「CommandName」而不是Command =「{Binding Path = CommandName}」。 –

0

我有同樣的當我忘大括號:

<DataTrigger Binding="{Binding Path=IsWhiteboardShared}" Value="True"> 
    <Setter Property="Background" Value="StaticResource AccentColorBlueBrush"/> 
</DataTrigger> 
0

我的任務是解決,其中類似的錯誤消息正在所示循環往復的錯誤。當我發現下列情況引起的問題,我有點失望(期待更復雜的東西和災難性的!):

<Style BasedOn="{StaticResource LinkButton}" TargetType="Button" > 

其中的LinkBut​​ton應該已經LinkBut​​tonStyle

1

與其他人不同,我的XAML語法正確。

<ImageBrush ImageSource="..\Images\previous_icon.png" />   

此錯誤開始出現時,我改變了我的形象 - 後來意識到我改變我的文件夾中的形象卻忘了包括它在我的項目。

因此,儘管XAML可以在'Desgn'視圖中顯示圖像 - 我在運行時遇到了這個異常。 傻一個。

0

我在BorderBrush使用時,灰色的而不是灰色

<Setter Property="BorderBrush" Value="Grey"/> 

,而不是

<Setter Property="BorderBrush" Value="Gray"/> 
1

這裏是這個錯誤的另一個實例有同樣的錯誤,如何解決它。

這似乎是由我的項目從VS2010升級到VS2012和VS2013造成的。不確定這是爲什麼這是一個問題,但我想它是。

我開發了一個Visual Studio嚮導來自動完成將項目添加到我們非常大的解決方案(300多個項目)的過程,因爲我們的開發人員需要額外的幫助維護項目。我使用WPF作爲嚮導,並且在VS2010中運行良好。我將項目升級到VS2012和VS2013,我開始發現這個錯誤。事實證明,在某些時候,我的圖標和圖像文件的路徑被搞砸了。一旦我糾正它 - 我直接在XAML中做了 - 我停止了錯誤。

如果您需要幫助,引用資源 - 這是我用來糾正我的問題的帖子:How to reference an icon resource file reference in XAML

0

我有同樣的錯誤,但用錯了路徑中的資源文件夾中的圖像

我有這個...

<controls:ImageButton Grid.Column="2" ImageButtonSource="Resources/close_normal.png"/> 

,但我需要這個......

<controls:ImageButton Grid.Column="2" ImageButtonSource="../Resources/close_normal.png"/> 

不得不添加../在開局就回去一個文件夾第一

相關問題