Пользовательская кнопка WPF, использующая геометрию из ресурса - PullRequest
6 голосов
/ 16 марта 2010

Есть ли способ использовать коллекцию PathGeometry, как эти:

Путь 1 F1 M 170,255,178,837L 170,255,221,158C 170,255,228,917 164,174,230,777 156,745,225.286L 136,003,209,973C 128,572,204,488 128,572,195,512 136,003,190,023L 156,745,123,706C 164,174,169,217 170,255,178,137,137 2 183 177 185 181 181,07,171,178,178,178,172,171,178,178,172,171,178,178,171. *

Путь 2 F1 M 152,29,174,464L 134,314,187,734C 129,978,190,937 127,589,195,29 127,589,199,994C 127,589,204,7 129,978,209,057 134,314,212,26L 152,29,225,531C 150,333,229,378 145,412,229,52 139,678,225,286L 118,935,209,93 204,489 111,506,195,512 118,935,190,022L 139,678,174,708C 145,412,170,475 150,333,170,617 152,29,174,464 Z

и использовать их для создания пользовательской кнопки таким же образом, как вы можете сделать круглую кнопку, показанную в этом примере? http://www.wpftutorial.net/Templates.html

Пример включает в себя переопределение шаблона элемента управления, и, кажется, много работы, если я хочу иметь много пользовательских кнопок. А что, если я хочу загрузить геометрические точки из ресурса?

1 Ответ

10 голосов
/ 18 марта 2010

Нет проблем, этот код переходит в Ресурсы.

<Geometry x:Key="geo">
        M 152.29,174.464L 134.314,187.734C 129.978,190.937 127.589,195.29 127.589,199.994C 127.589,204.7 129.978,209.057 134.314,212.26L 152.29,225.531C 150.333,229.378 145.412,229.52 139.678,225.286L 118.935,209.973C 111.506,204.489 111.506,195.512 118.935,190.022L 139.678,174.708C 145.412,170.475 150.333,170.617 152.29,174.464 Z
</Geometry>

<Style TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Path Data="{StaticResource geo}" Fill="HotPink" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
...