Click here to Skip to main content
15,885,855 members
Articles / Programming Languages / C#

Silver Draw - A Silverlight Based Collaboration White Board with Drawing and Chat

Rate me:
Please Sign up or sign in to vote.
4.98/5 (37 votes)
2 Nov 2009CPOL9 min read 139.3K   3.1K   137  
Silver Draw shows how to use Silverlight and WCF Polling Duplex services to create realtime collaboration apps.
  • silverdraw.zip
    • Client
      • .svn
        • all-wcprops
        • entries
        • format
        • prop-base
        • props
        • text-base
          • App.xaml.cs.svn-base
          • App.xaml.svn-base
          • Page.xaml.cs.svn-base
          • Page.xaml.svn-base
          • ScreenObject.cs.svn-base
          • ServiceReferences.ClientConfig.svn-base
          • Silverdraw.Client.csproj.svn-base
          • Silverdraw.Client.csproj.user.svn-base
        • tmp
          • prop-base
          • props
          • text-base
      • App.xaml
      • App.xaml.cs
      • Bin
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
          • tmp
            • prop-base
            • props
            • text-base
        • Debug
          • .svn
            • all-wcprops
            • entries
            • format
            • prop-base
              • SilverPaintGadget.dll.svn-base
              • SilverPaintGadget.pdb.svn-base
              • SilverPaintGadget.xap.svn-base
              • System.Json.dll.svn-base
              • System.Runtime.Serialization.Json.dll.svn-base
              • System.ServiceModel.PollingDuplex.dll.svn-base
            • props
            • text-base
              • AppManifest.xaml.svn-base
              • SilverPaintGadget.dll.svn-base
              • SilverPaintGadget.pdb.svn-base
              • SilverPaintGadget.xap.svn-base
              • System.Json.dll.svn-base
              • System.Json.xml.svn-base
              • System.Runtime.Serialization.Json.dll.svn-base
              • System.Runtime.Serialization.Json.xml.svn-base
              • System.ServiceModel.PollingDuplex.dll.svn-base
              • System.ServiceModel.PollingDuplex.xml.svn-base
              • TestPage.html.svn-base
            • tmp
              • prop-base
              • props
              • text-base
          • AppManifest.xaml
          • de
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • es
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • fr
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • it
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • ja
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • ko
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • Silverdraw.Client.dll
          • SilverPaintGadget.dll
          • SilverPaintGadget.xap
          • System.Json.dll
          • System.Json.xml
          • System.Runtime.Serialization.Json.dll
          • System.Runtime.Serialization.Json.xml
          • System.ServiceModel.PollingDuplex.dll
          • System.ServiceModel.PollingDuplex.xml
          • System.Windows.Controls.dll
          • System.Windows.Controls.xml
          • TestPage.html
          • zh-Hans
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
          • zh-Hant
            • .svn
              • all-wcprops
              • entries
              • format
              • prop-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • props
              • text-base
                • System.Json.resources.dll.svn-base
                • System.Runtime.Serialization.Json.resources.dll.svn-base
                • System.ServiceModel.PollingDuplex.resources.dll.svn-base
              • tmp
                • prop-base
                • props
                • text-base
            • System.Json.resources.dll
            • System.Runtime.Serialization.Json.resources.dll
            • System.ServiceModel.PollingDuplex.resources.dll
            • System.Windows.Controls.resources.dll
      • ColorPicker
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
            • ColorPicker.xaml.cs.svn-base
            • ColorPicker.xaml.svn-base
          • tmp
            • prop-base
            • props
            • text-base
        • ColorPicker.xaml
        • ColorPicker.xaml.cs
      • Helpers
      • Page.xaml
      • Page.xaml.cs
      • Properties
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
            • AppManifest.xml.svn-base
            • AssemblyInfo.cs.svn-base
          • tmp
            • prop-base
            • props
            • text-base
        • AppManifest.xml
        • AssemblyInfo.cs
      • Resources
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
            • brush.jpg.svn-base
            • circle.PNG.svn-base
            • pen.jpg.svn-base
            • pencil.jpg.svn-base
            • rect.PNG.svn-base
            • sticky.jpg.svn-base
          • props
          • text-base
            • brush.jpg.svn-base
            • circle.PNG.svn-base
            • pen.jpg.svn-base
            • pencil.jpg.svn-base
            • rect.PNG.svn-base
            • sticky.jpg.svn-base
          • tmp
            • prop-base
            • props
            • text-base
        • brush.jpg
        • circle.PNG
        • pen.jpg
        • pencil.jpg
        • rect.PNG
        • sticky.jpg
      • ScreenObject.cs
      • Service References
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
          • tmp
            • prop-base
            • props
            • text-base
        • Proxy
          • .svn
            • all-wcprops
            • entries
            • format
            • prop-base
            • props
            • text-base
              • configuration.svcinfo.svn-base
              • configuration91.svcinfo.svn-base
              • DuplexDrawService.disco.svn-base
              • DuplexDrawService.wsdl.svn-base
              • DuplexDrawService.xsd.svn-base
              • DuplexDrawService1.xsd.svn-base
              • DuplexDrawService2.xsd.svn-base
              • Reference.cs.svn-base
              • Reference.svcmap.svn-base
            • tmp
              • prop-base
              • props
              • text-base
          • configuration.svcinfo
          • configuration91.svcinfo
          • DuplexDrawService.disco
          • DuplexDrawService.wsdl
          • DuplexDrawService.xsd
          • DuplexDrawService1.xsd
          • DuplexDrawService2.xsd
          • Reference.cs
          • Reference.svcmap
      • ServiceReferences.ClientConfig
      • Silverdraw.Client.csproj
      • Silverdraw.Client.csproj.user
    • Server
      • .svn
        • all-wcprops
        • dir-prop-base
        • entries
        • format
        • prop-base
        • props
        • text-base
          • ClientAccessPolicy.xml.svn-base
          • DrawData.cs.svn-base
          • DuplexDrawService.svc.cs.svn-base
          • DuplexDrawService.svc.svn-base
          • IDuplexDrawCallback.cs.svn-base
          • IDuplexDrawService.cs.svn-base
          • Silverdraw.html.svn-base
          • Silverdraw.Publish.xml.svn-base
          • Silverdraw.Server.csproj.svn-base
          • Silverdraw.Server.csproj.user.svn-base
          • Silverlight.js.svn-base
          • Web.config.svn-base
          • Web.Debug.config.svn-base
          • Web.Release.config.svn-base
        • tmp
          • prop-base
          • props
          • text-base
      • App_Data
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
          • tmp
            • prop-base
            • props
            • text-base
      • bin
        • Silverdraw.Server.dll
        • System.Data.DataSetExtensions.dll
        • System.ServiceModel.PollingDuplex.dll
        • System.Web.Extensions.dll
      • ClientAccessPolicy.xml
      • ClientBin
        • SilverPaintGadget.xap
      • default.htm
      • DrawData.cs
      • DuplexDrawService.svc
      • DuplexDrawService.svc.cs
      • IDuplexDrawCallback.cs
      • IDuplexDrawService.cs
      • Properties
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
            • AssemblyInfo.cs.svn-base
          • tmp
            • prop-base
            • props
            • text-base
        • AssemblyInfo.cs
      • Service References
        • .svn
          • all-wcprops
          • entries
          • format
          • prop-base
          • props
          • text-base
          • tmp
            • prop-base
            • props
            • text-base
      • Silverdraw.Publish.xml
      • Silverdraw.Server.csproj
      • Silverdraw.Server.csproj.user
      • Silverdraw.Server.Publish.xml
      • Silverlight.js
      • Web.config
      • Web.Debug.config
      • Web.Release.config
    • Silverdraw.sln
<UserControl x:Class="Silverdraw.Client.ColorPicker"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="Auto" Height="Auto" 
    xmlns:selectable="clr-namespace:Silverdraw.Client"
    MouseLeftButtonUp="TurnEverythingOff">
	<UserControl.Resources>     
		
		<Style x:Key="ColorPickerTextBoxStyle" TargetType="TextBox">
			<Setter Property="Template">
				<Setter.Value>
					<ControlTemplate TargetType="TextBox">
						<Grid x:Name="RootElement">
							<Grid.Resources>
								<Storyboard x:Key="Normal State"/>
								<Storyboard x:Key="Focused State"/>
							</Grid.Resources>
							<Border BorderBrush="#FFA4A4A4" BorderThickness="1,1,1,1" CornerRadius="6,6,6,6" Background="{TemplateBinding Background}">
								<ScrollViewer x:Name="ContentElement"
									BorderThickness="0" 
									Padding="{TemplateBinding Padding}" Height="Auto" Width="Auto" 
									/>
							</Border>
						</Grid>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
	</UserControl.Resources>
    <Border Height="Auto" Width="Auto" 
            Background="#FF6B6A6A" 
            BorderBrush="#FF434343" 
            BorderThickness="1,1,1,1" 
            CornerRadius="8,8,8,8" 
            x:Name="RootControl">
		<Grid x:Name="LayoutRoot" Height="Auto" Width="Auto" Margin="4,4,4,4">
			<Grid.RowDefinitions>
				<RowDefinition x:Name="colorRow" Height="*" MinHeight="50" />
				<RowDefinition Height="Auto" MinHeight="0"/>
			</Grid.RowDefinitions>
			<Grid.ColumnDefinitions>
				<ColumnDefinition x:Name="colorColumn" Width="*" MinWidth="50"/>
				<ColumnDefinition x:Name="rightColumn" Width="Auto" MinWidth="90"/>
			</Grid.ColumnDefinitions>
			<StackPanel HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Grid.Column="1" Width="Auto" Grid.Row="0" Orientation="Vertical" x:Name="LargePanel">
				<Border Height="Auto" Width="Auto" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8" BorderBrush="#FFFFFFFF" Margin="2,2,2,2">
					<StackPanel Margin="4,0,0,0">
						<StackPanel Orientation="Horizontal" >
							<TextBlock Text="R:" TextWrapping="Wrap" Foreground="#FFFFFFFF"/>
							<TextBlock Text="255" TextWrapping="Wrap" Foreground="#FFFFFFFF" Margin="4,0,0,0" x:Name="RedText"/>
						</StackPanel>
						<StackPanel Orientation="Horizontal" >
							<TextBlock Text="G:" TextWrapping="Wrap" Foreground="#FFFFFFFF"/>
							<TextBlock Text="255" TextWrapping="Wrap" Foreground="#FFFFFFFF" Margin="4,0,0,0" x:Name="GreenText"/>
						</StackPanel>
						<StackPanel Orientation="Horizontal" >
							<TextBlock Text="B:" TextWrapping="Wrap" Foreground="#FFFFFFFF"/>
							<TextBlock Text="255" TextWrapping="Wrap" Foreground="#FFFFFFFF" Margin="4,0,0,0" x:Name="BlueText"/>
						</StackPanel>
					</StackPanel>
				</Border>
				<Border Height="Auto" Width="Auto" 
                        BorderBrush="#FFFFFFFF" 
                        BorderThickness="1,1,1,1" 
                        CornerRadius="8,8,8,8" 
                        Margin="2,2,2,2">
					<StackPanel Margin="2,2,2,2">
						<TextBlock Height="Auto" 
                                   Width="Auto" 
                                   Text="Copy RGB:" 
                                   TextWrapping="Wrap" 
                                   Foreground="#FFFFFFFF" 
                                   FontSize="12" 
                                   Margin="2,2,2,2"/>
                        <selectable:ClickTextBox x:Name="CopyColorText" 
                                 Text="255,255,255" 
                                 Foreground="#FFFFFFFF"  
                                 Height="Auto"
                                 SelectionBackground="#FF377887" 
                                 Background="#FF333333" 
                                 Width="Auto" 
                                 Margin="0,0,0,2"  />
					</StackPanel>
				</Border>
				
				<Border Height="Auto" 
                        Width="Auto" 
                        BorderBrush="#FFFFFFFF" 
                        BorderThickness="1,1,1,1" 
                        CornerRadius="8,8,8,8" 
                        Margin="2,2,2,2">
					<StackPanel Margin="2,2,2,2">
						<TextBlock Height="Auto" 
                                   Margin="2,2,2,2" 
                                   Width="Auto" 
                                   FontSize="12" 
                                   Foreground="#FFFFFFFF" 
                                   Text="Copy Hex:" 
                                   TextWrapping="Wrap"/>
						<selectable:ClickTextBox x:Name="CopyHexText" 
                                 Text="#FFFFFFFF" 
                                 Foreground="#FFFFFFFF"  
                                 Height="Auto" 
                                 Width="Auto" 
                                 Background="#FF333333"
                                 SelectionBackground="#FF377887"  
                                 Margin="2,2,2,2"  />
					</StackPanel>
				</Border>
			
			</StackPanel>
			<Grid Grid.RowSpan="1" Grid.ColumnSpan="1" Margin="0,0,0,0">
				<Grid.RowDefinitions>
					<RowDefinition Height="0.85*" MinHeight="100"/>
					<RowDefinition Height="0.15*" MaxHeight="60" MinHeight="10"/>
				</Grid.RowDefinitions>
				<Grid.ColumnDefinitions>
					<ColumnDefinition Width="0.85*" MinWidth="100"/>
					<ColumnDefinition Width="0.15*" MaxWidth="60" MinWidth="20"/>
				</Grid.ColumnDefinitions>
				<Canvas HorizontalAlignment="Stretch" 
					x:Name="BackgroundCanvas"
					Margin="1,1,1,1" 
					VerticalAlignment="Stretch"  
					Background="#FFFF0000" Grid.ColumnSpan="1" 
                    Grid.RowSpan="1" Grid.Column="0"/>
				<Canvas Margin="1,1,1,1">
					<Canvas.Background>
						<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
							<GradientStop Color="#00FFFFFF" Offset="1"/>
							<GradientStop Color="#FFFFFFFF" Offset="0"/>
						</LinearGradientBrush>
					</Canvas.Background>
				</Canvas>
				<Canvas x:Name="ColorCanvas"
                    MouseLeftButtonUp="Canvas_MouseLeftButtonUp"
					MouseLeftButtonDown="Canvas_MouseLeftButtonDown"
					MouseMove="Canvas_MouseMove"
					MouseLeave="Canvas_MouseLeave" 
                    SizeChanged="ColorCanvas_SizeChanged"
                    Margin="1,1,1,1">
					<Canvas.Background>
						<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
							<GradientStop Color="#FF000000" Offset="1"/>
							<GradientStop Color="#00000000" Offset="0"/>
						</LinearGradientBrush>
					</Canvas.Background>
					<Grid x:Name="FinalColor"
						Height="12" Width="12" 
						Canvas.Left="-6" Canvas.Top="-6">
						<Ellipse Stroke="#FFFFFFFF" StrokeThickness="3"/>
						<Ellipse Stroke="#FF000000" Margin="1,1,1,1"/>
					</Grid>
				</Canvas>
				<Border Height="Auto" HorizontalAlignment="Stretch" 
                        Margin="2,2,2,2" x:Name="resultCanvas" 
                        VerticalAlignment="Stretch" Grid.ColumnSpan="2" 
                        BorderBrush="#FF000000" BorderThickness="1,1,1,1" 
                        CornerRadius="6,6,6,6" Grid.Row="1" 
                        Background="#FFFFFFFF"/>
                <Border Margin="1,1,1,1" 
                        Grid.Column="1" 
                        BorderBrush="#FF262626" 
                        BorderThickness="1,1,1,1" 
                        CornerRadius="6,6,6,6" 
                        x:Name="RainbowBorder" 
                        MouseLeftButtonDown="RainbowBorder_TurnOn" 
                        MouseLeftButtonUp="RainbowBorder_TurnOff" 
                        MouseMove="RainbowBorder_UpdateHue">
                    <Border.Background>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FFFF0000"/>
                            <GradientStop Color="#FFFFFF00" Offset="0.16666"/>
                            <GradientStop Color="#FF00FF00" Offset="0.33332"/>
                            <GradientStop Color="#FF00FFFF" Offset="0.5"/>
                            <GradientStop Color="#FF0000FF" Offset="0.66666"/>
                            <GradientStop Color="#FEFF00FF" Offset="0.83333"/>
                            <GradientStop Color="#FFFF0000" Offset="1"/>
                        </LinearGradientBrush>
                    </Border.Background>                  
                    <Canvas x:Name="HueCanvas"
                            SizeChanged="HueCanvas_SizeChanged"
                            >
                        <Grid Margin="0,0,0,0"
                              x:Name="RainbowHandle" 
                              Height="10" 
                              Background="#00FFFFFF"
                              HorizontalAlignment="Stretch">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="0.33*"/>
                                <ColumnDefinition Width="0.33*"/>
                                <ColumnDefinition Width="0.33*"/>
                            </Grid.ColumnDefinitions>
                            <Path HorizontalAlignment="Stretch" 
        					    Margin="1,2,0,2" 
        					    VerticalAlignment="Stretch" 
        					    Fill="#FF000000" 
        					    Stretch="Fill" 
        					    Stroke="#FF000000" 
        					    Data="M0,0 L13,5.5 L0,10 z" 
                                  StrokeStartLineCap="Round" 
                                  StrokeEndLineCap="Round" 
                                  StrokeDashCap="Round" StrokeLineJoin="Round"/>
                            <Path HorizontalAlignment="Stretch" 
        					    Margin="0,2,1,2" 
        					    VerticalAlignment="Stretch" 
        					    Grid.Column="2" 
        					    Fill="#FF000000" 
        					    Stretch="Fill" 
        					    Stroke="#FF000000" 
        					    Data="M40,0 L25,5 L40,10 z" 
        					    StrokeDashCap="Round" 
        					    StrokeLineJoin="Round"/>
                            <Border Grid.ColumnSpan="3" 
                                    BorderThickness="1,1,1,1" 
                                    CornerRadius="3,3,3,3" 
                                    BorderBrush="#FF000000"/>
                        </Grid>
                    </Canvas>
                   
                </Border>
			</Grid>
			<StackPanel HorizontalAlignment="Stretch" Margin="0,0,0,0" 
                        VerticalAlignment="Stretch" Width="Auto" 
                        Orientation="Vertical" 
                        x:Name="CompactPanel" 
                        Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="1"
                        Visibility="Collapsed">
				<selectable:ClickTextBox x:Name="CompactRGBText" 
                                         Text="255,255,255" 
                                         Foreground="#FFFFFFFF" 
                                         Height="Auto"
                                         SelectionBackground="#FF377887" 
                                         Background="#FF333333" 
                                         Width="Auto" 
                                         Margin="2,2,2,2"  />
				<selectable:ClickTextBox x:Name="CompactHexText" 
                                         Foreground="#FFFFFFFF" 
                                         Height="Auto"
                                         SelectionBackground="#FF377887" 
                                         Background="#FF333333" 
                                         Width="Auto" 
                                         Margin="2,2,2,2"  />
			</StackPanel>
		</Grid>
	</Border>
</UserControl>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
India India
Architect, Developer, Speaker | Wannabe GUT inventor & Data Scientist | Microsoft MVP in C#

Comments and Discussions