My name is Edward Tanguay. I'm an American software and web developer living and working in Berlin, Germany.


5 hours ago: If you are a developer in Berlin and need to improve your English, I'm looking for groups to teach after work: http://tanguay.info/itenglish.
6 hours ago: As far as I'm concerned, the singularity is already here, every time I wake up twitter tells me something amazing was created while I slept.
6 hours ago: We're not suffering from information overload, we're suffering from faulty filtering.
7 hours ago: Classic literature for free as nicely formatted 1-page or 2-page PDF downloads: http://www.planetebook.com/free-ebooks.asp.
7 hours ago: Yes, when you pour coffee, "a lightning storm of neuronal activity occurs almost across the entire brain": http://is.gd/eWO1T @pholdings.
23 hours ago: If you put two spaces after a period or use underlining for emphasis, you were born before 1980.
24 hours ago: Word of the day: infovore, n. an animal with a voracious appetite for information.
yesterday: It's said that on average people use less than 10% of their brain, but I think on average computers use less than 1% of their CPU.
2 days ago: Saturday fun: team drawing on two computers with six-year-old in a shared google doc diagram.
2 days ago: Someday I want to produce a developer podcast called "What's that?" but for now "the developer's life" is a nice genre: http://is.gd/eTURO.
3 days ago: Here's a use-case for datapod format, recording human-readable data that later can be used as a datasource: http://is.gd/eSsLg @pholdings.
How to make a scrollable StackPanel that changes its content but keeps scroll position This example shows how you can full rebuild and replace a StackPanel but first save the position of the scrollbar before and setting it back to that position afterward, to the user it looks as if only the content changed. ![]() XAML:
<Window x:Class="Testsv2343.Window1"
Code Behind:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="310" Width="300"> <StackPanel Margin="10"> <Border Background="#ddd" CornerRadius="5" Padding="10"> <ContentControl x:Name="TheForm"/> </Border> <StackPanel Orientation="Horizontal"> <StackPanel HorizontalAlignment="Left" Margin="0 5 5 5"> <Button Content="English" Click="Button_Click_English"/> </StackPanel> <StackPanel HorizontalAlignment="Left" Margin="0 5 5 5"> <Button Content="German" Click="Button_Click_German"/> </StackPanel> </StackPanel> <TextBlock Text="{Binding Message}"/> </StackPanel> </Window>
using System.Windows;
using System.Windows.Controls; using System.ComponentModel; namespace Testsv2343 { public partial class Window1 : Window, INotifyPropertyChanged { #region ViewModelProperty: Message private string _message; public string Message { get { return _message; } set { _message = value; OnPropertyChanged("Message"); } } NO_GRAPHIC: customImages/itemTypes/codeExamples/endregion.* private ScrollViewer scrollViewer; private double scrollBarPosition = 0; private string englishLine = "this is line "; private string germanLine = "das ist Zeile "; public Window1() { InitializeComponent(); DataContext = this; CreateForm(englishLine); } #region INotifiedProperty Block public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } NO_GRAPHIC: customImages/itemTypes/codeExamples/endregion.* void CreateForm(string text) { StackPanel sp = new StackPanel(); for (int i = 0; i < 100; i++) { TextBlock tb = new TextBlock(); tb.Text = text + i.ToString(); sp.Children.Add(tb); } scrollViewer = new ScrollViewer(); scrollViewer.Content = sp; scrollViewer.Height = 200; scrollViewer.ScrollToVerticalOffset(scrollBarPosition); TheForm.Content = scrollViewer; } private void Button_Click_English(object sender, RoutedEventArgs e) { scrollBarPosition = scrollViewer.VerticalOffset; CreateForm(englishLine); } private void Button_Click_German(object sender, RoutedEventArgs e) { scrollBarPosition = scrollViewer.VerticalOffset; CreateForm(germanLine); } } } |
Most Recently Added Items:
- Extension method for checking regex in one line - c# code example - added 4 days ago
- How to use a Dictionary<> with struct key to save a dynamic matrix of objects - c# code example - added on Sunday, August 22, 2010
- A simple jquery search machine for a web page - jquery code example - added on Sunday, August 22, 2010
- Wrapper class to simplify the creation of Excel files in C# 4.0 - wpf code example - added on Tuesday, July 20, 2010
- How to make clickable flashcards in plain javascript for your mobile phone - javascript code example - added on Wednesday, July 07, 2010
- Simple example of javascript which loads jquery locally - jquery code example - added on Wednesday, July 07, 2010
- How to stop regular expression greediness - c# code example - added on Tuesday, July 06, 2010
- How to use a generic dictionary to total enum values - c# code example - added on Friday, July 02, 2010
- Generic method to case-insensitively convert a string to any enum - c# code example - added on Friday, July 02, 2010
- How to create a TextBlock that has various font formatting in code behind - silverlight code example - added on Wednesday, June 30, 2010
- How to encode binary files to text files and back to binary again - c# code example - added on Wednesday, June 30, 2010
- How to use a custom parameter struct to pass any number of variables to constructors of similar classes. - c# code example - added on Saturday, June 26, 2010
- How to make a class that renders an interactive FrameworkElement and interacts with the View - silverlight code example - added on Tuesday, June 15, 2010
- How to set a nullable type to null in a ternary operator - c# code example - added on Tuesday, June 15, 2010
- How to override events in inherited classes - c# code example - added on Friday, June 11, 2010
- How to strip off e.g. "note:" and "firstName: " from the left of a string using regex - c# code example - added on Tuesday, June 01, 2010
- How to create and subscribe to custom events using EventHandler - c# code example - added on Wednesday, May 12, 2010
- Code base for asynchronously loading and caching dependent data in a Silverlight app - silverlight code example - added on Wednesday, May 05, 2010
- Function to trim the preceding and trailing blank lines off an array - php code example - added on Sunday, May 02, 2010
- How to load and display the contents of a text file with AJAX/Jquery - jquery code example - added on Sunday, May 02, 2010
- How to use fopen() to create a proxy site to read any website content into AJAX - php code example - added on Sunday, May 02, 2010
- Code base for loading and caching external data into a silverlight app - silverlight code example - added on Friday, April 30, 2010
- An UpdateSourceTrigger workaround for Silverlight - wpf code example - added on Sunday, April 18, 2010
- Silverlight layout with click-in info panel - silverlight code example - added on Thursday, April 01, 2010
- How to get querystring variables and change HTML elements from Silverlight. - silverlight code example - added on Thursday, April 01, 2010
- XAML and code for a basic chat window in WPF - wpf code example - added on Saturday, March 27, 2010
- How to consume text from any Google Document, RSS feed, or Twitter feed in your Silverlight application - wpf code example - added on Sunday, March 21, 2010
- How to overlay one image on top of another in code behind - wpf code example - added on Saturday, March 20, 2010
- How to get the mouse-click and mouseover coordinates from an image - wpf code example - added on Tuesday, March 16, 2010
- How to use OrderedDictionary to lookup items by string key or integer index - c# code example - added on Tuesday, March 16, 2010
