특정 조건에 따라 여러 아이콘 크기를 허용하려고합니다. 이렇게하려면 번치 폴더가 있습니다 : 'Images \ Icons \ ... \ *. png'... 여기서 크기는 (16, 32, 64, 128, 256 등)입니다. 각 폴더에는 지정된 크기에 최적화 된 아이콘.StringFormat과 XAML 바인딩을 사용하여 이미지 경로에 폴더 삽입
나는 이미지 소스 경로에서 폴더 ... 즉 지정할 수없는 것내 문제 : 할 것입니다 (지금은
<Image x:Name = "img"
Stretch = "None"
Source = "{Binding StringFormat=Images\Icons\{0}\Multi.png,
RelativeSource={RelativeSource Self},
Path=Parent.Parent.Tag}" />
, 난 그냥 조부모의 태그에 폴더 이름을 저장하고 있습니다를 미래에 다른 것에 구속력을 가졌지 만, 지금은이 비트를 하나로 합치려고 노력하고 있습니다). 나는 위의 XAML을 구축 할 때, 나는 오류가 발생 : 이것은보고 있다고 beleave하는 날 리드
The text \Multi.png ... is not allowed after the closing } of a markup extension.
은 {0} 대신 내 문자열 형식의 일부가되는 마크 업 확장으로. 나는 {와 탈출} 및 문자열 형식을 지정하기 위해 작은 따옴표를 사용하는 방법에 대한 읽을 수 있지만 한 어느 작품 :
Source = "{Binding StringFormat={}Images\Icons\{0}\Multi.png, ...
위의 수익률을 나는 전혀 탈출하지 않는 경우와 같은 오류 ..
Source = "{Binding StringFormat='Images\Icons\{0}\Multi.png', ...
Source = "{Binding StringFormat='{}Images\Icons\{0}\Multi.png', ...
위의 두 가지는 오류가 발생하는 것을 방지하지만 이미지 원본이 null이됩니다.
누구나이 방법을 알고 있습니까?
(조부모의 태그가 '16'으로 설정되어 있으면 이미지 소스를 Images \ Icons \ 16 \ Multi.png에 바인딩하고 싶습니다. ... 태그가 '32'로 설정된 경우 소스를 Images \ Icons \ 32 \ Multi.png에 바인딩해야합니다. 테스트에서 조부모 태그를 전체 경로로 설정하고 문자열 형식을 제외 시켰습니다. 조부모 태그에 대한 상대적 바인딩이 성공하고 이미지가 표시되었습니다. 나머지 경로를 지정하기 위해 문자열 형식으로 폴더 이름 만 지정하려고하면 오류가 발생합니다.
필자는 {} {0}의 문자열 형식을 사용하여 태그에 바인딩하고 전체 경로로 태그를 설정하면 잘 바인딩합니다. 이 기능적으로 stringformat을 사용하여 경로에 폴더를 삽입하는 것과 같지 않습니까? 그것은 당신이 말했듯이 문자열에서 ImageSurce로 자동으로 변환되는 문자열로 변환됩니다. 나는 문제가 마크 업 확장의 {0}을 닫는 것으로 보았다는 것입니다 ... 아니면 나는 단지 틀린 것입니다 (이는 아마도 xaml에 비교적 익숙하기 때문에 가능합니다). – Chronicide
@ Chronicide 나는 내가 가지고있는 버그 중 일부를 수정 한 코드를 약간 수정했다. 나는 그것이 작동하는지 확인하기 위해 그것을 테스트했다. –
글쎄, 나는 많은 시험을 해봤고, 당신의 설명을 확인했다.그것은 문자열 형식을 완전히 무시하고있는 것으로 밝혀졌습니다 ... 그것은 태그가 전체 경로를 가졌을 때 항상 작동하는 이유였습니다. 문자열 형식으로 작업 한 텍스트 속성을 바인딩 할 때 비슷한 작업을 수행합니다. 내가 그 일을 결코 해낼 수 없었기 때문에 당신의 도움에 감사드립니다. 또한 코드를 주셔서 감사합니다. 나는 변환기를 피하기를 희망했지만 작동한다. – Chronicide