WPF ResourceDictionary string 활용 방법?

안녕하세요. :smile:

저는 보통 이미지를 사용하기 보다는 .SVG 기반의 백터를 선호하며 사용 중입니다.

<Geometry x:Key="GEO">M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6...</Geometry>

현재 이렇게 사용중인데, Geometry 값을 C#에서 혹시 가져올 수 있을까요?

예를들어

class GeoPack
{
    public string Icon = "M7.41,8.58L12,13.17L16.59,8.58L18,10L12...";
}
<Geometry x:Key="GEO" Value="{x:Static geo:Icon}"/>

이런식으로 접근할 수 있었으면 좋겠습니다.

감사합니다.

1개의 좋아요

GeometryGeometryConverter에 의해 문자열 경로가 인스턴스로 변환됩니다.

GeometryConverter.cs (microsoft.com)

내부적으로는 Geometry.Parse()에 의한 것입니다.

Geometry가 관련된 DependencyProperty를 노출하지 않는것으로 보여 원하시는 걸 달성할 수 없는 것처럼 보이나, 조금만 정보를 활용하여 구현한다면 원하시는 것을 달성할 수 있을 것으로 보입니다.

2개의 좋아요

@dimohy 감사합니다!! 알려주신대로 적용해보겠습니다. :smile:

개인적으로 궁금한 부분인데 Geometry 데이터를 C#에서 사용할 일이 있을까요?

string 데이터를 파싱할 때 말고는 딱히 떠오르지 않는데 만약 사용하더라도 일반적인 경우는 아닐 것 같아서요.
제가 생각했을 땐 icon만 정의한 xaml을 MergedDictionaries에서 사용하는 것이 일반적일 것 같은데 혹시 제가 모르는 방법이 있는지 궁금하네요. :thinking:

2개의 좋아요

@level120 저도 말씀하신 방식처럼 리소스를 관리하고 있는데요. 하지만 수백 개의 Path 데이터를 Xaml 상에서 그대로 쓰게 되면 Path가 너무 길다 보니 Geometry 목록이 한눈에 들어오지 않아 불편하더라고요. 그래서 C#에서 Path 데이터 부분만 변수로 관리하고 Xaml에서는 실질적으로 필요한 x:Key 목록만 볼 수 있도록 하고 싶었습니다. :joy:

2개의 좋아요