У меня есть значок пути XAML, как показано ниже:
<DataTemplate x:Key = "Folder">
<Grid>
<Path Data = "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"
Stretch = "Uniform" Fill = "Goldenrod" Width = "20" Height = "20" Margin = "0,0,0,0" RenderTransformOrigin = "0.5,0.5">
<Path.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle = "0" />
<ScaleTransform ScaleX = ".8" ScaleY = ".8" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Grid>
</DataTemplate>
Я бы предпочел использовать этот значок вместо значка Segoe MDL2 Assets на моей кнопке ниже. Обычно я предпочитаю значки путей XAML и хочу использовать их там, где это возможно.
<Button
x:Name = "CB_AddNode"
Content = ""
FontFamily = "Segoe MDL2 Assets"
Foreground = "DarkGreen"
Style = "{StaticResource IconButtonStyle}"
ToolTipService.ToolTip = "Add node under selected node." />
К сожалению, я не вижу свойства ImageTemplate или другого свойства в элементе управления «Кнопка», которое принимает DataTemplate. Есть ли способ?
Кнопка является производной от ContentControl
, что означает, что она поддерживает одного дочернего элемента через свое свойство Content
, которое является ее свойством по умолчанию. В вашем случае вы можете просто написать:
<Button x:Name = "CB_AddNode"
Foreground = "DarkGreen"
ToolTipService.ToolTip = "Add node under selected node.">
<Path Data = "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z"
Stretch = "Uniform"
Fill = "Goldenrod"
Width = "20"
Height = "20"
Margin = "0,0,0,0"
RenderTransformOrigin = "0.5,0.5">
<Path.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle = "0" />
<ScaleTransform ScaleX = ".8"
ScaleY = ".8" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Button>
@EABagby Тебе это подходит?
@Ax1le Извиняюсь, мой жесткий диск умер в понедельник, и мне пришлось с этим разобраться. Да, это сработало отлично. Спасибо.
Поэтому мне не нужно размещать объекты в свойстве Content, буквально заключая их в
<Content></Content>
, что я и пробовал. Я просто добавляю контент по пути, как вы показываете. Я попробую это в понедельник и проголосую за, если это сработает.