<DrawingImage x:Key="HexagonImage">
<DrawingImage.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="White"
Geometry="M 250,0 L 750,0 L 1000,433 L 750,866 L 250,866 L 0,433 Z">
<GeometryDrawing.Pen>
<Pen Brush="Black" Thickness="10" LineJoin="Round"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<Style x:Key="HexagonButton" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image x:Name="hexImg" Source="{StaticResource HexagonImage}"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Tôi có một nút, có HexagonButton này như phong cách của mình, và tôi muốn thay đổi màu sắc của nó lập trình, Iv'e cố gắng thay đổi sở hữu Backgroup, nhưng không có kết quả.WPF: lập trình thay đổi màu sắc của một điều khiển với một phong cách tùy chỉnh
cách duy nhất tôi quản lý để làm như vậy, là tạo ra một phong cách hoàn toàn mới, với một hình ảnh Vẽ mới. và chỉ định. Nhưng tôi chắc chắn có một cách dễ dàng hơn để làm như vậy.
Ghi chú nhỏ: hãy xem xét sử dụng 'RelativeSource TemplatedParent' (hoặc thậm chí' TemplateBinding') thay vì 'RelativeSource AncestorType = {x: Type Button}'. –