Gần đây tôi đã phải làm điều này và ngạc nhiên khi thấy nó đơn giản như thế nào khi tôi không thể dễ dàng tìm thấy bất kỳ ví dụ rõ ràng nào. Những gì tôi đã làm là thêm dòng sau vào AssemblyInfo.cs:
#if DEBUG
[assembly: XmlnsDefinition("debug-mode", "Namespace")]
#endif
Sau đó, sử dụng thẻ AlternateContent không gian tên đánh dấu-tương thích để chọn nội dung của bạn dựa trên presense đó định nghĩa namespace:
<Window x:Class="Namespace.Class"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="debug-mode"
Width="400" Height="400">
...
<mc:AlternateContent>
<mc:Choice Requires="d">
<Style TargetType="{x:Type ToolTip}">
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="FlowDirection" Value="LeftToRight"/>
</Style>
</mc:Choice>
<mc:Fallback>
<Style TargetType="{x:Type ToolTip}">
<Setter Property="FontFamily" Value="Tahoma"/>
<Setter Property="FlowDirection" Value="RightToLeft"/>
</Style>
</mc:Fallback>
</mc:AlternateContent>
...
</Window>
Bây giờ , khi DEBUG được xác định, "chế độ gỡ lỗi" cũng sẽ được xác định và không gian tên "d" sẽ xuất hiện. Điều này làm cho thẻ AlternateContent chọn khối mã đầu tiên. Nếu không xác định DEBUG, thì mã khối dự phòng sẽ được sử dụng.
Mã mẫu này không được kiểm tra, nhưng về cơ bản nó giống như tôi đang sử dụng trong dự án hiện tại của tôi để hiển thị một số nút gỡ lỗi có điều kiện.
Tôi đã xem bài đăng trên blog với một số mã ví dụ dựa trên thẻ "Có thể bỏ qua", nhưng dường như ít rõ ràng và dễ sử dụng hơn như phương pháp này.
Bạn đang cố gắng làm gì? – tsells
Tôi cần phải có các kiểu khác nhau trong chế độ gỡ lỗi, để tôi có thể thực hiện thực thi nhẹ hơn trong chế độ gỡ lỗi. –