|
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:NetworkUI="clr-namespace:NetworkUI;assembly=NetworkUI"
xmlns:NetworkModel="clr-namespace:NetworkModel;assembly=NetworkModel"
>
<BooleanToVisibilityConverter
x:Key="booleanToVisibilityConverter"
/>
<!-- The border brush for nodes. -->
<SolidColorBrush
x:Key="nodeBorderBrush"
Color="Black"
/>
<!-- The fill brush for nodes. -->
<LinearGradientBrush
x:Key="nodeFillBrush"
StartPoint="0,0"
EndPoint="0,1"
>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="#7FC9FF" Offset="0.6" />
</LinearGradientBrush>
<!-- The brush for connections. -->
<SolidColorBrush
x:Key="connectionBrush"
Color="Black"
/>
<!-- The brush for connectors. -->
<SolidColorBrush
x:Key="connectorBackgroundBrush"
Color="White"
/>
<!--
Define a style for 'NodeItem'.
Binds 'X' and 'Y' in the view-model (the 'NodeViewModel' class)
to 'X' and 'Y' in the NodeItem class.
This sets the position of the node within the Canvas.
-->
<Style TargetType="{x:Type NetworkUI:NodeItem}">
<Setter
Property="X"
Value="{Binding X}"
/>
<Setter
Property="Y"
Value="{Binding Y}"
/>
<Setter
Property="ZIndex"
Value="{Binding ZIndex}"
/>
<Setter
Property="IsSelected"
Value="{Binding IsSelected}"
/>
</Style>
<!--
A data-template that defines the UI for input connectors.
-->
<DataTemplate
x:Key="inputConnectorTemplate"
>
<Grid
Margin="0,2,0,0"
>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- The 'ConnectorItem' or anchor point for the connector. -->
<NetworkUI:ConnectorItem
Grid.Column="0"
Width="15"
Height="15"
Cursor="Hand"
/>
<!-- The name of the connector. -->
<TextBlock
Grid.Column="1"
Margin="5,0,0,0"
Text="{Binding Name}"
VerticalAlignment="Center"
/>
</Grid>
</DataTemplate>
<!--
A data-template that defines the UI for output connectors.
-->
<DataTemplate
x:Key="outputConnectorTemplate"
>
<Grid
HorizontalAlignment="Right"
Margin="0,2,0,0"
>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- The name of the connector. -->
<TextBlock
Grid.Column="0"
Text="{Binding Name}"
VerticalAlignment="Center"
Margin="0,0,5,0"
/>
<Grid
Grid.Column="1"
Width="15"
Height="15"
Cursor="Hand"
>
<!-- The 'ConnectorItem' or anchor point for the connector. -->
<NetworkUI:ConnectorItem />
<!-- Show a black dot at the start of the arrow when connected. -->
<Ellipse
Visibility="{Binding IsConnectionAttached, Converter={StaticResource booleanToVisibilityConverter}}"
Margin="3"
Fill="{StaticResource connectionBrush}"
IsHitTestVisible="False"
/>
</Grid>
</Grid>
</DataTemplate>
</ResourceDictionary>
|
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.
Software craftsman | Author | Writing rapidfullstackdevelopment.com - Posting about how to survive and flourish as a software developer
Follow on Twitter for news and updates: https://twitter.com/codecapers
I'm writing a new book: Rapid Fullstack Development. Learn from my years of experience and become a better developer.
My second book, Bootstrapping Microservices, is a practical and project-based guide to building distributed applications with microservices.
My first book Data Wrangling with JavaScript is a comprehensive overview of working with data in JavaScript.
Data-Forge Notebook is my notebook-style application for data transformation, analysis and transformation in JavaScript.
I have a long history in software development with many years in apps, web apps, backends, serious games, simulations and VR. Making technology work for business is what I do: building bespoke software solutions that span multiple platforms.
I have years of experience managing development teams, preparing technical strategies and creation of software products. I can explain complicated technology to senior management. I have delivered cutting-edge products in fast-paced and high-pressure environments. I know how to focus and prioritize to get the important things done.
Author
- Rapid Fullstack Development
- Bootstrapping Microservices
- Data Wrangling with JavaScript
Creator of Market Wizard
- https://www.market-wizard.com.au/
Creator of Data-Forge and Data-Forge Notebook
- http://www.data-forge-js.com
- http://www.data-forge-notebook.com
Web
- www.codecapers.com.au
Open source
- https://github.com/ashleydavis
- https://github.com/data-forge
- https://github.com/data-forge-notebook
Skills
- Quickly building MVPs for startups
- Understanding how to get the most out of technology for business
- Developing technical strategies
- Management and coaching of teams & projects
- Microservices, devops, mobile and fullstack software development