WPF 템플릿 오류 - " 'System.Windows.Baml2006.TypeConverterMarkupExtension'에 값을 제공하면 예외가 발생했습니다."



4 Answers

다른 사람들과 마찬가지로 -이 끔찍한 오류 메시지는 내 xaml에 구문 오류가 있음을 의미합니다.

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

내가 높이 값을 채우지 않았 음을 주목하라.

Question

방금 WPF 템플릿 대 스타일을 실험하기 시작했고, 내가 뭘 잘못하고 있는지 잘 모르겠습니다. 아래의 목표는 메뉴의 옵션 색상을 번갈아 사용하는 것입니다. 코드는 그냥 잘 작동하지만 복사 및 붙여 넣기 / "MenuChoiceOdd"두 번째 세그먼트의 이름을 바꿀 때 다음 오류가 나타납니다.

> '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>

내가 도대체 ​​뭘 잘못하고있는 겁니까?




제 경우에는 프로젝트 이름을 변경했습니다. 이 오류가 발생하면. 이미지를 다시 선택하고 이미지의 리소스 이름도 변경해야한다는 것을 알았습니다.

        <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 구성 요소로 수정해야합니다.




내 BorderBrush에서 회색 대신 회색을 사용할 때도 같은 오류가 발생했습니다.

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

대신에

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



나는 중괄호를 잊어 버렸을 때도 똑같이했다.

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



다른 사람들과 달리 XAML 구문이 정확했습니다.

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

이 오류는 이미지를 변경했을 때 나타났습니다. 나중에 폴더의 이미지를 변경했지만 내 프로젝트에 이미지를 포함 하는 것을 잊었습니다.

따라서 XAML에서 'Desgn'보기의 이미지를 표시 할 수 있지만이 예외는 @ 런타임입니다. 어리석은 사람.



Related