Hầu hết các nút AppBar đều dựa trên kiểu được bao gồm trong StandardStyles được gọi là AppBarButtonStyle.
Để tùy chỉnh các văn bản của các nút bạn thiết lập AutomationProperties.Name tài sản gắn liền, để tùy chỉnh biểu tượng trên nút bạn thiết lập Content bất động sản, và nó cũng là một ý tưởng tốt để thiết lập các AutomationProperties.AutomationId thuộc tính đính kèm vì lý do trợ năng.
Dưới đây là một ví dụ về một nút tùy chỉnh sử dụng phương pháp này:
<Style x:Key="FolderButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}">
<Setter Property="AutomationProperties.AutomationId" Value="FolderAppBarButton"/>
<Setter Property="AutomationProperties.Name" Value="Folder"/>
<Setter Property="Content" Value=""/>
</Style>
Như đã đề cập ở trên, để tùy chỉnh biểu tượng bạn thiết lập Content tài sản. Thách thức là cách bạn đặt nội dung để nó hiển thị nghệ thuật vector tùy chỉnh của bạn.
Nó chỉ ra rằng bạn có thể đặt bất kỳ đường dẫn Xaml, thậm chí của bạn, vào một hộp kiểm Viewbox để thay đổi tỷ lệ của nó. Đó là cách tiếp cận đầu tiên của tôi, nhưng nó không hoạt động. Trong thực tế, có vẻ như bất kỳ lúc nào bạn sử dụng ký hiệu mở rộng Xaml để đặt thuộc tính Nội dung cho một nút nó không hoạt động.
<Style x:Key="SquareButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}">
<Setter Property="AutomationProperties.AutomationId" Value="SquareAppBarButton"/>
<Setter Property="AutomationProperties.Name" Value="Square"/>
<Setter Property="Content">
<Setter.Value>
<!-- This square will never show -->
<Rectangle Fill="Blue" Width="20" Height="20" />
</Setter.Value>
</Setter>
Tôi thực sự nghĩ rằng đây là một lỗi, nhưng may mắn là có một cách giải quyết.
Tim Heuer đã viết xuất sắc bài viết về cách đơn giản nhất để sử dụng hình ảnh Đường dẫn làm tác phẩm nghệ thuật cho nút. Điều đó là ở đây:
http://timheuer.com/blog/archive/2012/09/03/using-vectors-as-appbar-button-icons.aspx
Nói tóm lại, bạn cần phải xác định một phong cách thiết lập tất cả các cam kết ràng buộc một cách chính xác:
<Style x:Key="PathAppBarButtonStyle" BasedOn="{StaticResource AppBarButtonStyle}" TargetType="ButtonBase">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Path Width="20" Height="20"
Stretch="Uniform"
Fill="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Data="{Binding Path=Content, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
</DataTemplate>
</Setter.Value>
</Setter>
Sau đó, bạn tạo ra một phong cách được thừa kế từ phong cách đó và bạn dán vào đường dẫn của mình. Đây là phong cách cho tác phẩm nghệ thuật của bạn, bạn liệt kê ở trên:
<Style x:Key="CrossButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource PathAppBarButtonStyle}">
<Setter Property="AutomationProperties.AutomationId" Value="CrossAppBarButton"/>
<Setter Property="AutomationProperties.Name" Value="Cross"/>
<Setter Property="Content" Value="M372.58272,134.72445C167.96301,134.72445 2.06820310000001,300.58818 2.06820310000001,505.20789 2.06820310000001,709.8276 167.96301,875.72241 372.58272,875.72241 577.20243,875.72241 743.06616,709.8276 743.06616,505.20789 743.06616,300.58818 577.20243,134.72445 372.58272,134.72445z M280.73888,251.77484L455.94149,251.77484 455.94149,413.70594 628.16035,413.70594 628.16035,588.97071 455.94149,588.97071 455.94149,773.71514 280.73888,773.71514 280.73888,588.97071 106.22005,588.97071 106.22005,413.70594 280.73888,413.70594 280.73888,251.77484z"/>
</Style>
Và cuối cùng, bạn sử dụng nó trong AppBar của bạn như thế này:
<Button Style="{StaticResource CrossButtonStyle}" />
hỗ trợ Dev, hỗ trợ thiết kế và sự tốt lành tuyệt vời hơn trên đường: http://bit.ly/winappsupport
Phần tử xaml chứa phần tử hình ảnh là gì? Điều gì sẽ xảy ra với tỷ lệ khung hình nếu bạn xóa các thuộc tính chiều rộng, chiều cao và/hoặc lề khỏi phần tử hình ảnh? – Nathan
Hệ thống phân cấp là . Bạn không chắc chắn ý nghĩa của từ 'aspect ratio'? Sử dụng đoạn mã trên, tôi không thể hiển thị hình ảnh. –
"Nếu tôi thêm trực tiếp vào ứng dụng xaml của tôi, nó sẽ hiển thị, tuy nhiên tỷ lệ sẽ bị tắt". - Tôi đã được keying tắt của cụm từ đó liên quan đến tỷ lệ khía cạnh. Nó không rõ ràng với tôi khi tôi đọc câu hỏi của bạn lần đầu tiên mà bạn không nhận được nó để hiển thị ở tất cả khi sử dụng nguồn hình ảnh - mặc dù nó là khá rõ ràng trong tiêu đề ... – Nathan