Files
gtav-src/tools_ng/wildwest/script/3dsMax/UI/ProceduralPainter.xaml
T
2025-09-29 00:52:08 +02:00

464 lines
39 KiB
XML
Executable File

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
x:Name="Root" SnapsToDevicePixels="True" MinWidth="285">
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="X:\gta5\tools_ng\wildwest\script\3dsMax\UI\Resources\Base.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="7"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Border Height="32" BorderThickness="0,0,0,2" BorderBrush="Black" >
<Grid Background="{StaticResource RockstarGlobal}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="32"></ColumnDefinition>
<ColumnDefinition Width="32"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="X:\gta5\tools\wildwest\script\3dsMax\UI\WW_banner_rsLogo.png" Stretch="Fill" Width="32" Height="32"/>
<TextBlock Text="v:1.03 Blazing Eyeballs" Grid.Column="1" Margin="0,10,0,0"/>
<Button ToolTip="Click to send a mail with suggestions or queries." Name="Banner_Mail_Button" Template="{StaticResource BasicButtonControlTemplate}" Grid.Column="2" Width="32" Height="32">
<Image Source="X:\gta5\tools\wildwest\script\3dsMax\UI\WW_banner_mail.png" Stretch="Fill" />
</Button>
<Button ToolTip="Click to goto the help page." Name="Banner_Wiki_Button" Template="{StaticResource BasicButtonControlTemplate}" Grid.Column="3" Width="32" Height="32">
<Image Source="X:\gta5\tools\wildwest\script\3dsMax\UI\WW_banner_wiki.png" Stretch="Fill" />
</Button>
</Grid>
</Border>
<TabControl SelectedIndex="1" IsEnabled="True" x:Name="TabRoot" Padding="0" Grid.Row="3" BorderThickness="0,4,0,0" BorderBrush="{StaticResource BackgroundLightBrush}">
<TabItem Header="Options" ToolTip="Togglable tool options.">
<StackPanel Margin="6">
<CheckBox Foreground="{StaticResource DefaultForegroundFontBrush}" IsChecked="{Binding Path=AutoTransferAfterCommit}" ToolTip="After commiting data the tool will automatically transfer the commited data over to all relevant/affected collision meshes.">Automatically transfer after commit.</CheckBox>
<Grid Height="6"/>
<CheckBox Foreground="{StaticResource DefaultForegroundFontBrush}" IsChecked="{Binding Path=TransferGroundTint}" ToolTip="During transfer the tool will use the master map image to source ground tint colors.">Transfer ground tint from map image.</CheckBox>
<Grid Height="6"/>
<CheckBox Foreground="{StaticResource DefaultForegroundFontBrush}" IsChecked="{Binding Path=UseGroundTintOverride}" ToolTip="Use ground tint override channel during the transfer process.">Use ground tint override channel.</CheckBox>
</StackPanel>
</TabItem>
<TabItem Header="Transfer" ToolTip="Tools for transfering data from visual meshes to collision meshes">
<TabItem.Style>
<Style TargetType="TabItem" BasedOn="{StaticResource TabItemBase}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=CurrentlyEditing}" Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabItem.Style>
<StackPanel>
<GroupBox Header="Map Image" ToolTip="Import or Export to the master map image.">
<StackPanel>
<Button Name="Import_Data_Button" ToolTip="Import data from the master map image">Import Data</Button>
<Button Name="Export_Data_Button" IsEnabled="False" ToolTip="Export data to to the master map image">Export Data</Button>
</StackPanel>
<!--<Button Name="Transfer_Data_Button" Content="Transfer All" ToolTip="Transfer procedural data to collision object. System automatically detects which collision objects need updating."/>-->
</GroupBox>
<GroupBox Header="Live Update" ToolTip="Live imports and exports data.">
<StackPanel>
<Button Name="Import_Live_Button" ToolTip="Live import data from selected faces in game and apply to respective faces on the HD meshes in the scene.">Import Live Data</Button>
<!--<Button Name="Live_Export_Button" ToolTip="Live export data from collision meshes in max over to the game.">Live Export Data</Button>-->
</StackPanel>
</GroupBox>
<GroupBox Header="Transfer" ToolTip="Transfer procedural data from visual meshes to procedural collision meshes.">
<StackPanel>
<Button Name="Update_Transfer_List_Button" ToolTip="Forces an update of the transfer list. Press this when you have updated procedural information and you want the system to detect which visual meshes will need updating to reflect these changes.">Update List</Button>
<ScrollViewer VerticalScrollBarVisibility="Auto" MaxHeight="800" >
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="24"></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.Column="0" Content="Visual Mesh" Background="{StaticResource Black_30}"/>
<Border Grid.Column="1" Background="{StaticResource White_40}" />
<Image Height="18" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Source="X:\gta5\tools\wildwest\script\3dsMax\UI\RefreshIcon.png"></Image>
<!--<Label Grid.Column="1" Content="Status" HorizontalContentAlignment="Center" Background="{StaticResource White_40}"/>-->
</Grid>
<ListBox ItemsSource="{Binding Path=TransferListView}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="30"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Opacity="0.3" IsHitTestVisible="false">
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=NeedsUpdating}" Value="True">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=NeedsUpdating}" Value="False">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
<Label Grid.Column="0" Content="{Binding Path=Name}" VerticalAlignment="Center" VerticalContentAlignment="Center" Name="Collision_Mesh_Label"/>
<ToggleButton Grid.Column="1" ToolTip="Mark for transfer." IsChecked="{Binding Path=SelectedForTransfer}" />
<!--Border Grid.Column="1" BorderBrush="{StaticResource White_40}" BorderThickness="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Border BorderBrush="{StaticResource Black_20}" BorderThickness="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Green"/>
</Border>-->
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</ScrollViewer>
<Border IsHitTestVisible="false">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="{StaticResource White_10}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=CanTransfer}" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBlock
TextAlignment="Center"
TextWrapping="WrapWithOverflow"
Foreground="{StaticResource DefaultForegroundFontBrush}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="7"
Width="200">
There are no visual meshes selected for transfer in any open containers. Select some visual meshes and click add.
</TextBlock>
</Border>
<!--Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Name="Add_Collision_Button"
Content="Add"
ToolTip="Adds the selected visual meshes to the transfer list."/>
<Button Grid.Column="1"
Name="Remove_Collision_Button"
Content="Remove"
ToolTip="Removes the selected visual meshes from the transfer list."/>
</Grid-->
<Button Name="SelectNone_Visual_Target_Button" ToolTip="Clears the visual meshes in the list.">Select None</Button>
<Button Name="Select_Visual_Target_Button" ToolTip="Selects all the visual meshes in the list.">Select All</Button>
<Button Name="Focus_Visual_Target_Button" ToolTip="Focuses all the selected meshes in the list.">Focus Selected</Button>
<!--Button Name="Transfer_Data_Button"
Content="Transfer"
ToolTip="Starts the transfer process for the collision meshes selected in the list."/-->
<Button Name="Transfer_ProcMesh_Data_Button"
Content="Transfer To ProcMesh"
ToolTip="Starts the transfer to a procmesh cloned from the visual mesh." />
</StackPanel>
</GroupBox>
</StackPanel>
</TabItem>
<TabItem Header="Paint Target(s)" ToolTip="Target object(s) for editing." >
<StackPanel>
<GroupBox Header="Edit Action">
<ToggleButton Name="Edit_Action_Button" IsChecked="{Binding Path=CurrentlyEditing, Mode=OneWay}" Content="{Binding CurrentEditAction, Mode=OneWay}" ToolTip="Click to begin editing the selected objects."/>
</GroupBox>
<GroupBox Header="Target Objects">
<StackPanel>
<ListBox
MaxHeight="756" MaxWidth="420"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ItemsSource="{Binding Path=NodeCollection.NodeDataList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="45"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="Name:" HorizontalContentAlignment="Right" Background="{StaticResource White_10}"/>
<Label Grid.Column="1" Content="{Binding Path=Name}" Background="{StaticResource Black_10}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button x:Name="Commit_Data_Button" IsEnabled="{Binding Path=NodeCollection.UnsavedDataChanges}" ToolTip="Permanently Commit all changes made to the source object(s). This information is stored on map channel 31.">Commit Data</Button>
<!--<Button x:Name="Commit_Data_And_Transfer_Button" IsEnabled="{Binding Path=NodeCollection.UnsavedDataChanges}" ToolTip="Permanently Commit all changes made to the source object(s). Immediately transfer data onto respective collision meshes.">Commit and Transfer Data</Button>-->
</StackPanel>
</GroupBox>
</StackPanel>
</TabItem>
<TabItem Header="Paint Tools" ToolTip="Tools to paint procedurals to the targeted object(s)" IsEnabled="{Binding Path=CurrentlyEditing}">
<ScrollViewer VerticalScrollBarVisibility="Auto" Background="{StaticResource BackgroundBrush}">
<Grid IsEnabled="{Binding Path=CurrentlyEditing}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="240"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel>
<GroupBox Header="Display Mode">
<StackPanel>
<ToggleButton Content="Opaque" Grid.Column="0" IsChecked="{Binding Path=Render.Opaque}" ToolTip="Set to render procedurals opaquely"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Name="Reduce_Opacity_Button" Width="30" Grid.Column="0">-</Button>
<ToggleButton Grid.Column="1" Content="Transparent" IsChecked="{Binding Path=Render.Transparent}" ToolTip="Set the render procedurals with transparency. Useful for seeing what you are painting onto."/>
<Button Name="Increase_Opacity_Button" Width="30" Grid.Column="2">+</Button>
</Grid>
<Grid Height="6"/>
<ToggleButton IsChecked="{Binding Path=Display.CombinedResult}" ToolTip="Show the procedurals colorised with level values in a gradient">Combined Result</ToggleButton>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<ToggleButton IsChecked="{Binding Path=Display.IsolateDensity}" ToolTip="Isolate the density values.">Isolate Density</ToggleButton>
<ToggleButton IsChecked="{Binding Path=Display.IsolateScaleXYZ}" ToolTip="Isolate the ScaleXYZ values.">Isolate ScaleXYZ</ToggleButton>
</StackPanel>
<StackPanel Grid.Column="1">
<ToggleButton IsChecked="{Binding Path=Display.IsolateGroundTint}" ToolTip="Isolate the ground tint colour.">Isolate Ground Tint</ToggleButton>
<ToggleButton IsChecked="{Binding Path=Display.IsolateScaleZ}" ToolTip="Isolate the ScaleZ values.">Isolate ScaleZ</ToggleButton>
</StackPanel>
</Grid>
</StackPanel>
</GroupBox>
<GroupBox Header="Painting Tools">
<StackPanel>
<Button Name="ProceduralLevel_Clear_Selection_Button" ToolTip="Click to clear the selected faces.">Clear Faces</Button>
<Button Name="Procedural_Auto_Blend_Levels_Button" ToolTip="Takes the selected faces and auto blends between the various levels. Creates a nice stepped effect which can serve as good base for more painting/tweaking." >Auto Blend Levels</Button>
<Button Name="Procedural_Process_Spacing_Button" ToolTip="Takes the selected faces and processes the spacing." >Process Spacing</Button>
<Button IsEnabled="False">Increase Level</Button>
<Button IsEnabled="False">Decrease Level</Button>
</StackPanel>
</GroupBox>
<GroupBox Header="Live Update">
<StackPanel>
<ToggleButton IsChecked="{Binding CameraSyncState}" Name="Live_Sync_Camera_Button" ToolTip="Lock the game camera with the viewport">Sync Game Camera</ToggleButton>
<Button Name="Live_Update_Faces_Button" ToolTip="Live updates the selected faces. Maximum of 500 faces.">Update Selected Faces</Button>
</StackPanel>
</GroupBox>
</StackPanel>
<Border Width="5" BorderBrush="{StaticResource White_10}" BorderThickness="1,0,1,0" Grid.Column="1" Background="{StaticResource White_50}"/>
<StackPanel Grid.Column="2" MinWidth="420" Grid.ColumnSpan="2">
<GroupBox Header="Selected Set" >
<ComboBox Name="SelectedSetCombo"
SelectedItem="{Binding Path=SelectedSet}"
Grid.Column="0"
ItemsSource="{Binding Path=SetList}"
ToolTip="Select a set."
HorizontalContentAlignment="Stretch">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid Background="{StaticResource Black_10}" HorizontalAlignment="Stretch" Margin="2">
<!--<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>-->
<TextBlock Padding="2" HorizontalAlignment="Left" Text="{Binding Path=Name}"/>
<Grid Background="{StaticResource Black_10}" HorizontalAlignment="Right">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Padding="2" HorizontalAlignment="Right" Text="{Binding Path=ProceduralList.Count}"/>
<TextBlock Grid.Column="1" Padding="2" HorizontalAlignment="Left" Text="Procedurals"/>
</Grid>
<!--<TextBlock Grid.Column="2" HorizontalAlignment="Right" Text="Procedurals"/>-->
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</GroupBox>
<GroupBox Header="Procedural Pallette" Padding="0">
<Grid MinHeight="160" Background="{StaticResource BackgroundBrush}">
<TextBlock Background="{StaticResource BackgroundBrush}"
TextAlignment="Center"
TextWrapping="WrapWithOverflow"
Foreground="{StaticResource DefaultForegroundFontBrush}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Width="200">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SelectedSet.HasProcedurals}" Value="True">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
There are no procedurals contained in this set. Please select another set from the combobox above.
</TextBlock>
<!--<ScrollViewer VerticalScrollBarVisibility="Auto" MaxHeight="800" >-->
<ListBox MaxHeight="756" MaxWidth="420"
ScrollViewer.VerticalScrollBarVisibility="Auto"
HorizontalContentAlignment="Stretch"
ItemsSource="{Binding ElementName=SelectedSetCombo, Path=SelectedItem.ProceduralList}"
SelectionMode="Single" Background="{StaticResource BackgroundBrush}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Background="{StaticResource BackgroundBrush}">
<Border Background="{StaticResource Black_20}" >
<StackPanel Orientation="Horizontal">
<Border Width="10">
<Border.Background>
<SolidColorBrush Color="{Binding Path=ColorHexCode}"/>
</Border.Background>
</Border>
<Label Margin="0" VerticalAlignment="Center" Content="{Binding Path=Name}"/>
</StackPanel>
</Border>
<Border Background="{StaticResource White_40}" Height="1"/>
<Grid Background="{StaticResource BackgroundBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="170"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--Procedural controls-->
<Grid Background="{StaticResource BackgroundBrush}" Height="70" Grid.Column="0" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="{StaticResource Black_30}" BorderThickness="2" Background="LightGray">
<!--<TextBox Text="{Binding Path=ThumbnailImageFilePath}"/>-->
<Image Source="{Binding Path=ThumbnailImageFilePath}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill" StretchDirection="Both">
<Image.ToolTip>
<ToolTip>
<ToolTip.Template>
<ControlTemplate>
<Border Width="300" BorderThickness="2" BorderBrush="{StaticResource Black_70}" Background="{StaticResource BackgroundBrush}">
<StackPanel>
<Image Source="{Binding Path=ThumbnailImageFilePath}" Stretch="Fill" StretchDirection="Both"/>
<Border Height="2" BorderBrush="{StaticResource Black_30}"/>
<TextBlock Padding="10" Foreground="White" Text="{Binding Path=Description}" TextWrapping="Wrap"/>
</StackPanel>
</Border>
</ControlTemplate>
</ToolTip.Template>
<!--<Border Width="300" Height="300" Background="Green"/>-->
</ToolTip>
</Image.ToolTip>
</Image>
</Border>
<Grid Grid.Column="1" Background="{StaticResource BackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<!--<RowDefinition/>-->
</Grid.RowDefinitions>
<Button Grid.Row="0" Name="Procedural_Remove_Button" ToolTip="Click to clear all faces that use the procedural." HorizontalAlignment="Stretch">Remove All</Button>
<Button Grid.Row="1" Name="Procedural_Select_Button" ToolTip="Click to select faces that use the procedural" HorizontalAlignment="Stretch">Select All</Button>
<!--<Slider Grid.Row="2" Name="Procedural_Display_Opacity_Slider" ToolTip="Slide to decrease/increase opacity value of the procedural." Maximum="255" Minimum="0" Value="{Binding Path=DisplayOpacity}"/>-->
</Grid>
</Grid>
<!--Procedural level controls-->
<Grid Grid.Column="1" Grid.Row="1" Background="{StaticResource BackgroundBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ListBox
Background="{StaticResource BackgroundBrush}"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
ItemsSource="{Binding Path=LevelList}" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel
Background="{StaticResource BackgroundBrush}"
IsItemsHost="True"
Orientation="Horizontal"
VerticalAlignment="Stretch">
</StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Background="{StaticResource Black_40}" BorderThickness="1,0,1,0" BorderBrush="{StaticResource Black_60}">
<Label Content="{Binding Name}" Margin="0" Padding="7,1,1,1">
<Label.LayoutTransform>
<RotateTransform Angle="-90" />
</Label.LayoutTransform>
</Label>
</Border>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Row="0" BorderThickness="1" BorderBrush="{StaticResource Black_30}">
<Border BorderThickness="1" BorderBrush="{StaticResource White_30}">
<Border.Background>
<SolidColorBrush Color="{Binding Path=Color.HexCode}" />
</Border.Background>
<Grid Background="Transparent" Name="Procedural_Level_Grid">
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding Path=AppliedFaceCount}" Foreground="White">
<TextBlock.Effect>
<DropShadowEffect
ShadowDepth="1"
Direction="-45"
Color="Black"
Opacity="1.0"
BlurRadius="1.0" />
</TextBlock.Effect>
</TextBlock>
</Grid>
</Border>
</Border>
<Button Grid.Row="1" Content="Apply" Name="ProceduralLevel_Apply_Selection_Button" ToolTip="Click to apply the procedural level to the selected faces."/>
<Button Grid.Row="2" Content="Select" Name="ProceduralLevel_Select_Button" IsEnabled="{Binding Path=Applied}" ToolTip="Click to select the faces which currently use the procedural level"/>
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Border Grid.Column="1" Background="{StaticResource HatchBrush}" BorderBrush="{StaticResource Black_30}" BorderThickness="5,0,0,0"/>
</Grid>
</Grid>
<Border Background="{StaticResource White_40}" Height="1"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!--</ScrollViewer>-->
</Grid>
</GroupBox>
</StackPanel>
</Grid>
</ScrollViewer>
</TabItem>
</TabControl>
</Grid>