prosource

'시스템에 가치를 부여합니다.창문들.Baml2006년TypeConverterMarkupExtension'이 예외를 발생시켰습니다.'

probook 2023. 4. 18. 23:04
반응형

'시스템에 가치를 부여합니다.창문들.Baml2006년TypeConverterMarkupExtension'이 예외를 발생시켰습니다.'

WPF에서 창을 열었을 때 제목에 예외가 표시되는데, 이상한 점은 Windows 7 개발 머신에서는 이러한 현상이 발생하지 않으며 Windows 7에 전개되어도 발생하지 않는다는 것입니다.

이 에러는 Windows XP에서만 발생하며 창을 두 번째로 열었을 때 발생합니다.

다음은 창을 여는 코드입니다.

ReportParametersWindow win = null;

      bool canOverWrite = _shownReports.Contains(rpt.FriendlyName);

      if (!(canOverWrite))
        win = new ReportParametersWindow(rpt.FriendlyName, rpt.ReportParameters, canOverWrite);
      else
        win = new ReportParametersWindow(rpt.FriendlyName, (container.ParametersWindow as ReportParametersWindow).Controls, canOverWrite);

      win.ShowDialog();

그리고 창의 XAML:

<Window xmlns:my="clr-namespace:MHA.Modules.Core.Controls;assembly=MHA.Modules.Core"  
    x:Class="MHA.Modules.Reports.Views.ReportParametersWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Parameters" Height="500" Width="600" MinWidth="500" MaxHeight="500" 
    Icon="/MHA.Modules.Reports;component/Images/Parameters.ico" SizeToContent="WidthAndHeight" 
    WindowStartupLocation="CenterScreen"
    xmlns:odc="clr-namespace:Odyssey.Controls;assembly=Odyssey" Closed="Window_Closed">

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="40"/>
    </Grid.RowDefinitions>
    <ScrollViewer Grid.Row="0" Name="ScrollViewer1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" CanContentScroll="True">
        <StackPanel Name="ParameterStack">
            <my:LocationCtl Text="Parameters for report - " Name="loc"/>
        </StackPanel>
    </ScrollViewer>
    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <CheckBox ToolTip="This will replace the first report of the same type that was shown." Name="chkOverwrite" Content="Overwrite old" VerticalAlignment="Center" Margin="5,0"></CheckBox>

        <Button Grid.Column="2" HorizontalAlignment="Right" Margin="5,0" Height="30" Style="{StaticResource DionysusButton}" Width="100" IsDefault="True" Click="Button_Click">
            <StackPanel Orientation="Horizontal">
                <Image Source="/MHA.Modules.Reports;component/Images/Success.png"></Image>
                <TextBlock Margin="5,0" Text="Accept" VerticalAlignment="Center"></TextBlock>
            </StackPanel>
        </Button>
    </Grid>
</Grid>

제안해 주실 분 있나요?

그 해결책은 꽤 이상한 것이지만 나는 그것을 알아냈다.

창의 Initialize Component()에서 오류가 발생하고 있음을 깨닫고 컨스트럭터에 트라이캐치를 추가하여 예외의 InnerException을 표시했습니다.

제가 받은 에러는 "이미지 포맷이 인식되지 않습니다"입니다.

왜 XP에서만 이 문제가 발생하고 창이 두 번째로 뜨는지 알 수 없지만 .ico를 .png로 바꾸면 문제가 해결되었습니다.

이게 도움이 됐으면 좋겠네요.

나도 방금 이 문제에 부딪혔어...오래된 건 알지만 결국엔 이미지를 Resource로 설정하고 Copy Always로.../bin/Debug 폴더를 브라우즈하는 것만으로 이미지가 올바른 경로 위치에 있지 않다는 것을 알 수 있었습니다.

이 문제는 지정된 위치에서 필요한 이미지를 사용할 수 없는 경우에도 발생할 수 있습니다.따라서 내부 예외를 확인하고 누락되거나 철자가 틀렸을 수 있는 이미지를 추가합니다.

버튼의 명령 바인딩이 잘못되었기 때문에 다음 오류가 발생했습니다.

<Button Command="MyCommand" />

대신

<Button Command="{Binding MyCommand}" />

저의 경우, 근본 원인은 모든 이미지의 잘못된 BuildAction 속성입니다.Build Action을 콘텐츠에서 리소스로 변경하여 수정했습니다.

먼저 이미지를 프로젝트 솔루션 탐색기로 Import해야 합니다. - 모두 표시

여기에 이미지 설명 입력

그런 다음 이미지를 마우스 오른쪽 버튼으로 클릭하고 포함을 선택합니다.

여기에 이미지 설명 입력

지금 끝 사용

응용 프로그램의 루트에서 하위 디렉토리로 리소스 사전을 이동한 후 이 예외가 발생했습니다.내 경우 사전 내 스타일 설정기 내부의 이미지 경로가 문제였습니다.앞에 슬래시 '/'를 붙이고 나면 응용 프로그램이 다시 작동하기 시작했습니다.유사한 문제가 있는 경우 리소스 사전을 엽니다. 그러면 오류가 파란색 '오징글' 행으로 강조 표시됩니다.

내 경우 모듈에 'WpfToolkit' 참조를 추가했으므로 필요 없습니다.이 참조를 삭제하면 모든 것이 정상입니다.이상해!

[프로젝트]로 이동합니다.[프로젝트명] .ico 파일을 설정하고 아이콘으로 설정합니다.이제 .ico 파일이 매니페스트 파일에 표시됩니다.또, 다음의 조작을 사용해 XAML 파일에 간단하게 .ico 파일을 포함할 수 있습니다.

아이콘=아이콘 파일 이름]을 클릭합니다.ico"

<Window  x:Class="[Your project's name].MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="" Height="500" Width="720"
     Icon="[your icon's name].ico">

제 경우 mew added icon(이미지) 파일이 프로젝트에 추가되지 않았습니다.파일 복사뿐만 아니라 새로운 이미지 파일을 프로젝트에 추가하면 해결됩니다.

내 경우 파일은 디스크에 존재하지만 프로젝트에서 참조되지 않았습니다.프로젝트에 추가했지만 솔루션을 새로고침하고 Visual Studio를 다시 시작했는데도 오류가 지속되었습니다.

프로젝트에 이미 있는 기존 파일로 참조를 변경했더니 잘못된 그래픽을 사용하더라도 정상적으로 실행되었습니다.그 후, 원래의 참조로 되돌렸고, 다시 정상적으로 동작했지만, 이미지는 정확했습니다.아마 오류가 시스템에서 지워질 때까지 어떻게든 캐시되고 있었을 겁니다

cs.proj 파일에서 "WPFToolkit" 참조를 삭제합니다.

<Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

효과가 있을 거야.

파일 이름이 변경되었습니다.그래서 이 에러가 나는 거예요.

음, 내 경우, 얼마 전 프로젝트에 이미지 폴더를 추가하는 동안 FileExplore의 이미지 폴더에 새로운 사진을 추가했습니다.프로젝트의 이미지 경로에 문제가 없었습니다.프로젝트를 작성할 때도 같은 에러가 발생합니다.그런 다음 이미지 폴더를 마우스 오른쪽 버튼으로 클릭하여 새 사진을 프로젝트에 추가하고 기존 아이템과 선택한 새 사진을 추가합니다.그리고 나서 나는 용액청소하고 다시 만들었다.

이 문제를 일으키는 방법은 여러 가지가 있습니다.그 예외는 구체적이지 않기 때문에.다음은 이 스레드에서 시도할 수 있는 솔루션 목록입니다.

우선은 할 수 있다try/catchInitializeComponent()어떤 일이 일어났는지 더 자세히 알기 위해 예외를 두는 콜입니다.

  • 이미지가 아이콘(.ico) 파일인 경우 이미지(.png) 또는 동등한 파일을 대신 사용합니다.
    • , 「」라고 하는 경우도 있습니다..ico파일에 문제가 있습니다.- 를 사용하고 있었습니다.
  • 이 「」로 설정되어 있는 을 확인해 주세요.Resource또는Embedded Resource

    이 섹션에서 설명하는 리소스 파일은 XAML 리소스에서 설명하는 리소스 파일과 다르며 응용 프로그램 리소스 관리(.NET)에서 설명하는 임베디드 리소스 또는 링크 리소스와는 다릅니다.- MSDN

  • 파일에 대한 참조의 철자가 올바르고 패치가 올바른지 확인합니다.

    • 예: 프로젝트레벨에 폴더가 있는 경우 "/Resources/logo.png"
      • 프리픽스에 주의해 주세요./.
  • 해시태그 접두사가 없는 xaml 파일의 색상 코드"#000FE0"

제 경우는 다른 프로그램이 이미지를 사용하고 있었는데, 어떻게든 접속을 방해하고 있었습니다.카피를 만들었는데 이게 먹혔어

<Window
.....
     Height="450" Width="400" 
     Icon="../Resources/SettingsCopy.png" >

사용자 2125523을 개선하려면:

이미지를 프로젝트에 추가하고 파일 철자가 올바른지 확인하고 두 번 확인한 경우 다른 기존 이미지를 미러링하도록 이미지 이름을 변경해 보십시오.빌드/실행 후 이미지 파일 이름을 다시 입력하고 빌드/실행합니다.

예를 들어 다음과 같습니다.원래 코드가 OP 오류를 계속 발생시켰습니다.LargeImage="/img/32/delete.order.png"이 파일이 존재하는 경우에도 마찬가지입니다.

<telerik:RadRibbonButton Text="Object Properties" Size="Large"
    Name="PropertiesButton" IsTabStop="True"
    telerik:ScreenTip.Description="Get object properties" 
    Click="PropertiesButton_Click"
    LargeImage="/img/32/properties.png" 
    SmallImage="/img/16/properties.png" />
<telerik:RadRibbonButton Text="Reset Tab Order" Size="Large" 
    Name="ClearTabOrderButton" IsTabStop="True"
    telerik:ScreenTip.Description="Reset tab order of all fields"
    Click="ClearTabOrder_Click"
    LargeImage="/img/32/delete.order.png" 
    SmallImage="/img/16/delete.order.png" />

그래서 나는 변했다.LargeImage="/img/32/delete.order.png"로.LargeImage="/img/32/properties.png", 프로그램을 실행한 후 다시 로 변경합니다."/img/32/delete.order.png"마침내 오류가 사라졌습니다.

참고: VS2012.3Windows 8.1 미리보기

저도 같은 문제가 있어서, 당신의 솔루션에 이미지를 추가하려면 당신은 그것을 wichard를 통해 해야 합니다.솔루션 탐색기 -> 적절한 폴더 우클릭 -> 기존 아이템 추가 -> 이미지를 참조합니다.나한테는 효과가 있었어.이게 도움이 됐으면 좋겠다.답변 감사합니다.

설정 시도Build ActionProperty이미지 파일을 로서Resource.

예외는 생성자 내에서 발생하는 경우가 많습니다.버튼의 명령 바인딩이 잘못되었습니다.예:<Button Command="MyCommand" />--> 틀렸다<Button Command="{Binding MyCommand}" />--> 오른쪽

제 경우, 이 에러는 제가 이 에러를 가지고 있을 때 발생합니다.

<Border Background="eeeeee">

대신

<Border Background="#eeeeee">

(미시그니처를 삭제해 주세요.#)

XAML 어딘가에 "UpdateSourceTrigger=Pr"이 있습니다.

편집하는 동안 발생한 것이 틀림없어요.

컴파일은 정상적으로 완료되어 오류는 발생하지 않았습니다.

app.xaml.cs의 Application_DispatcherUnhandledException에서 브레이크 포인트를 설정하면 오류가 발견되었습니다.

"UpdateSourceTrigger=MultipleChanged"로 수정되었으며 월드 상태 그대로여야 합니다.

Windows 10 Pro, VS 2017에서 일하고 있습니다.

이 오류가 발생하여 이미지 소스 경로 형식에 오류가 있음을 발견했습니다. 슬래시/는 다음과 같이 추가되었습니다.

Source="/TestProject;component/Images//hat_and_book.png

여분의 슬래시를 제거했더니 오류가 사라졌어요.

같은 에러 메세지가 표시되고 나서, 다음의 해결 방법이 표시됩니다.C# WPF 실행시에 이미지가 표시되지 않습니다.

폴더 찾기:추가된 이미지의 속성으로 이동하여 [Build Action =]를 [Resource]으로 설정하고 [Copy To Output Directory =]를 [Copy](복사)로 설정합니다(Copy To Output Directory =>).

내 경우 높이 속성을 가진 테두리 태그를 작성했는데 이렇게 속성을 떠나는 값을 제거해야 했습니다.

<Border Background="{StaticResource MainBackgroundBrush}" BorderThickness="1" Height="">
</Border>

컴파일러에서도 같은 에러가 발생했지만, IDE에 문제가 없기 때문에, 몇개의 하드 검색 후에 찾았습니다.모든 속성이 올바르게 설정되어 있는 것을 확인해 주세요.이것이 누구에게나 유용했으면 좋겠다.

png 아이콘을 여기서 선택할 뿐이지 목록에서는 선택할 수 없습니다.그리고 그것은 끝났다.

여기를 선택해주세요

오래된 것은 알지만 Visual studio 2022, windows 10에서도 동일한 오류가 발생합니다.Windows 탐색기의 이미지 파일로 이동하여 마우스 오른쪽 버튼으로 클릭하면 됩니다.다음으로 속성으로 이동하여 "차단 해제"를 선택한 후 적용합니다.'재생 버튼'을 클릭해도 동작하지 않기 때문에(VS에서도 같은 에러가 발생), '재구축'을 클릭한 후 다시 '시작 버튼'을 클릭해야 합니다.또한 파일 형식을 .jpg에서 .png으로 변경했는데, 파일 차단을 해제하기 전에 변경했기 때문에 문제가 될지는 모르겠습니다.

xaml의 비표준 태그 옵션에 의해 Initialize Component(); Function in - try mode - 이렇게 설정되어 있습니다.

 try { 
InitializeComponent(); 
} 
catch (Exception ex) { 
MessageBox.Show(ex.Message.ToString()); 
}

이제 MessageBox ( ( control .axml 파일에 잘못된 설정으로 행 번호를 표시합니다.(수정 후 첫 번째 잘못된 라인 태그 오류가 표시되고 앱을 다시 실행하여 다음 항목을 참조하십시오.)

언급URL : https://stackoverflow.com/questions/12833294/provide-value-on-system-windows-baml2006-typeconvertermarkupextension-threw-a

반응형