src/StructuredLogViewer/Controls/BuildControl.xaml (128 lines of code) (raw):
<UserControl x:Class="StructuredLogViewer.Controls.BuildControl"
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="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:StructuredLogViewer.Controls"
xmlns:structuredLogViewer="clr-namespace:StructuredLogViewer"
xmlns:structuredLogger="clr-namespace:Microsoft.Build.Logging.StructuredLogger;assembly=StructuredLogger"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance structuredLogger:Build}"
d:DesignHeight="300" d:DesignWidth="300">
<local:SplitterPanel Orientation="Vertical" FirstChildRelativeSize="*" SecondChildRelativeSize="50">
<local:SplitterPanel.FirstChild>
<local:SplitterPanel FirstChildRelativeSize="1*" SecondChildRelativeSize="3*">
<local:SplitterPanel.FirstChild>
<TabControl x:Name="leftPaneTabControl" TabStripPlacement="Bottom" Margin="0" Padding="0">
<TabItem x:Name="searchLogTab" Header="Search Log">
<local:SearchAndResultsControl x:Name="searchLogControl"></local:SearchAndResultsControl>
</TabItem>
<TabItem x:Name="propertiesAndItemsTab" Header="Properties and items">
<DockPanel>
<Border DockPanel.Dock="Top"
BorderThickness="0,0,0,1"
Background="{DynamicResource Theme_InfoBarBackground}"
BorderBrush="Gray"
x:Name="projectContextBorder"
Visibility="Collapsed"
Padding="4,2,4,2"
MinHeight="27">
<DockPanel>
<TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" Text="Project: " />
<ContentControl Focusable="false" DockPanel.Dock="Top" VerticalAlignment="Center" x:Name="propertiesAndItemsContext" />
</DockPanel>
</Border>
<local:SearchAndResultsControl x:Name="propertiesAndItemsControl"></local:SearchAndResultsControl>
</DockPanel>
</TabItem>
<TabItem x:Name="filesTab" Header="Files" Visibility="Collapsed">
<local:SearchAndResultsControl x:Name="filesTree"></local:SearchAndResultsControl>
</TabItem>
<TabItem x:Name="findInFilesTab" Header="Find in Files" Visibility="Collapsed">
<local:SearchAndResultsControl x:Name="findInFilesControl" WatermarkContent="Search in files"></local:SearchAndResultsControl>
</TabItem>
</TabControl>
</local:SplitterPanel.FirstChild>
<local:SplitterPanel.SecondChild>
<local:SplitterPanel>
<local:SplitterPanel.FirstChild>
<TabControl x:Name="centralTabControl"
TabStripPlacement="Bottom"
SelectedIndex="0"
MinWidth="10">
<TabItem x:Name="mainTreeTab" Header="Log">
<TreeView x:Name="treeView"
BorderBrush="Transparent"
BorderThickness="0"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
TreeViewItem.Selected="TreeViewItem_Selected"
ItemsSource="{Binding Children}"
structuredLogViewer:ScrollViewerHelper.ShiftWheelScrollsHorizontally="True" />
</TabItem>
<TabItem x:Name="timelineTab" Header="Timeline">
<Grid>
<TextBlock x:Name="timelineWatermark" HorizontalAlignment="Center"
VerticalAlignment="Center">Rendering timeline...</TextBlock>
<local:TimelineControl x:Name="timeline"
Visibility="Hidden"
structuredLogViewer:ScrollViewerHelper.ShiftWheelScrollsHorizontally="True" />
</Grid>
</TabItem>
<TabItem x:Name="tracingTab" Header="Tracing">
<Grid>
<TextBlock x:Name="tracingWatermark" HorizontalAlignment="Center"
VerticalAlignment="Center">Rendering Trace...</TextBlock>
<local:TracingControl x:Name="tracing"
Visibility="Hidden"
structuredLogViewer:ScrollViewerHelper.ShiftWheelScrollsHorizontally="True" />
</Grid>
</TabItem>
<TabItem x:Name="projectGraphTab" Header="Project Graph">
<Grid>
<TextBlock x:Name="projectGraphWatermark" HorizontalAlignment="Center"
VerticalAlignment="Center">Rendering graph...</TextBlock>
<local:ProjectGraphControl x:Name="projectGraphControl" Visibility="Hidden"/>
</Grid>
</TabItem>
</TabControl>
</local:SplitterPanel.FirstChild>
<local:SplitterPanel.SecondChild>
<local:DocumentWell x:Name="documentWell" Visibility="Collapsed"></local:DocumentWell>
</local:SplitterPanel.SecondChild>
</local:SplitterPanel>
</local:SplitterPanel.SecondChild>
</local:SplitterPanel>
</local:SplitterPanel.FirstChild>
<local:SplitterPanel.SecondChild>
<Border BorderBrush="Gray"
BorderThickness="1">
<ScrollViewer>
<ListBox x:Name="breadCrumb"
BorderThickness="0"
BorderBrush="Transparent"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.CanContentScroll="False"
Background="{DynamicResource Theme_InfoBarBackground}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Resources>
<Style TargetType="Separator">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Polygon Points="0,0 3,3, 0,6" Stroke="{DynamicResource {x:Static SystemColors.InfoTextBrushKey}}" Fill="{DynamicResource {x:Static SystemColors.InfoTextBrushKey}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox>
</ScrollViewer>
</Border>
</local:SplitterPanel.SecondChild>
</local:SplitterPanel>
</UserControl>