我将我在Windows Phone中发布的应用程序移植到Win 8.在尝试写入IsolatedStorage
等效文件时 ApplicationDataContainer
,我得到了一个例外.例外说
错误:状态管理器设置的大小已超出限制
我不确定这是否是使用的正确方法ApplicationDataContainer
.
public void WriteToIsolatedStorage()
{
try
{
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
ApplicationDataCompositeValue composite = new ApplicationDataCompositeValue();
if (localSettings.Containers.ContainsKey("LoveCycleSetting"))
{
localSettings.DeleteContainer("LoveCycleSetting");
}
composite["GetWeekStart"] = m_bWeekStart;
composite["iHistCount"] = m_iHistCount;
composite["dtHistory"] = this.DateTimeToString(m_dtHistory);
composite["avgCycleTime"] = m_iAvgCycleTime;
}
}
Run Code Online (Sandbox Code Playgroud)
例外发生在倒数第二行.m_dtHistory是一个大小为400的字符串数组.那么它ApplicationDataCompositeValue
有一个固定的大小吗?或者我必须将m_dtHistory数组写入文件?在WindowsPhone中我可以直接将数组写入IsolatedStorageSettings
.
如果有人可以指导我或提供链接,那将是非常有帮助的.
Alfah
我在平板电脑华硕ME400 Intel Atom Z2760上运行我的桌面应用程序WPF.所有工作都正常,但是当我使用scrollviewer时,用手指在滚动结束时用手指滚动移动(简化平移模式horizontalOnly),窗口移动,你会看到任务栏片刻.如果我用手指滚动,直到在滚动条中建立后才会看到效果.
我怎么能避免这个窗口运动?当我在滚动条的末尾滚动时,如何锁定窗口并且不允许移动?
我在代码隐藏中硬编码了回车符,以便用英语调整新行.现在我已经本地化了我的应用程序,结果是'\n'在不必要的地方,有没有办法将'\n'添加到resx文件,以便我可以使用我需要的时间和地点?我已经尝试将\n分配给字符串,但它在屏幕上显示'\n':(还有其他方法吗?
Alfah
如何使用两个拇指创建自定义滑块.一个用于表示较高范围而另一个用于较低范围.例如价格范围.如果该值低于50,则表示较低的范围,如果该值高于50,则表示较高的范围.
我想知道如何在代码中动态地将图像添加到按钮而不是在xaml中.有人建议按以下方式进行
ImageBrush brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri(@"Images/myImage.png", UriKind.Relative));
AlphabetButton.Background = brush;
Run Code Online (Sandbox Code Playgroud)
但是,虽然我可以找到BitConvertor和Bitmapcache,但智能感知不会检测到BitmapImage.如果这不是方法,我将如何设置背景图像
当应用程序启动时,我有一个启动画面,然后加载mainpage.xaml.Mainpage有很多UI元素,如按钮和文本块.加载它需要大约一两秒钟,所以我认为一些动画可以填补空白.否则它可能看起来有点尴尬.
Windows手机本机应用程序(如消息)在页面打开时使用一些默认动画,枢轴标题在其后旋转,然后是其他UI,门打开的东西.经过一番研究,我发现它们是陀螺动画的默认故障.
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>
Run Code Online (Sandbox Code Playgroud)
所以我</phone:PhoneApplicationPage>
在MainPage 的标签上面放了上面的代码.但是页面的元素没有十字转门动画,我怎样才能将它应用到页面中的其他UI元素?有人可以指导我吗?
Alfah
我在Windows手机市场上发布了一个应用程序,我正在尝试移植到Win 8.我正在使用Windows 8 Release Preview和Visual Studio Express RC 2012 for Win 8,代码是C#-XAML
.
我创建了一个自定义的6x7日历.前7个按钮放入第一个StackPanel
,下一个放入另一个面板,依此类推.所以有6个StackPanels
按住42个按钮.所有这些StackPanel都被放入一个Grid
便于定位.
每个按钮都与Holding
名为OnLongPress 的EventHandler 相关联.所以我面临的问题是当按下一个按钮时,OnLongPress函数被调用两次.在调试时,我发现第一次,Holding state
是Started
和下次调用时,Holding state
id Completed
.我无法弄清楚它被调用两次的原因.
是因为事件被冒泡了吗?:(
private void OnLongPress(object sender, HoldingRoutedEventArgs e)
{
Button butClicked = (Button)sender;
int iNumClicked = Convert.ToInt32(butClicked.Content.ToString());
CycleManager pCycMan = CycleManager.Instance;
string iVal, jVal;
int iRow, jCol;
string butName = butClicked.Name;
iVal = butName.Substring(1, 1);
jVal = butName.Substring(2, 1);
iRow = …
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个重置功能,可以将应用程序恢复到默认状态。因为我需要删除我创建的四个文件并删除我在ApplicationDataContainer
. 这就是我删除文件的方法
try
{
StorageFile file = await localfolder.GetFileAsync("HistoryFile");
if (file != null)
{
await file.DeleteAsync();
}
}
catch
{
//Catch Process
}
Run Code Online (Sandbox Code Playgroud)
有没有一个功能可以把所有文件一起删除?当我尝试以下代码时
localfolder.DeleteAsync()
Run Code Online (Sandbox Code Playgroud)
它删除了 LocalState 文件夹以及文件,我只需要删除文件而不是文件夹。
无论如何,我是否可以一次性删除 ApplicationDatacontainer 中存储的所有值?而不是像这样一一删除?
localSettings.DeleteContainer("exampleContainer");
Run Code Online (Sandbox Code Playgroud) 该应用程序在Windows应用商店中存在,并且具有8.0版本.如果我重新定位到Windows Phone 8.1并使用新功能发布,它是否可用于Windows Phone 8.0用户?
我们的大多数用户仍然使用8.0.
我收到了微软的开发者电话.在尝试运行我的应用程序时出现错误,该应用程序显示"确保目标设备屏幕已解锁且应用程序已安装".
现在可能缺少什么.
Alfah
我有一个Windows 8 C# - xaml应用程序.我有一个堆叠面板,里面有6个堆叠面板.每个堆叠面板有7个按钮.所以整个事情是6x7按钮形成一个日历.主堆栈面板放置在网格中.
现在按钮没有内容集.在后面的代码中,这些按钮的日期设置为内容.
我的问题是,对于不同的分辨率,网格扩展了堆栈面板,但内部的按钮更小,以适应内容.我想按钮扩展,以填满整个堆栈面板.主网格,主堆栈面板,子堆栈面板和按钮的高度和宽度设置为自动..
我一直试图实现这一目标.但是徒劳!有什么建议?
编辑:
有一个主网格,它包含BackButtonGrid,CalendarGrid,NotesGrid和StatusGrid.
CalendarGrid有一个
2个文本框显示一些值.
<Grid Style="{StaticResource LayoutRootStyle}">
<Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- Back button and page title -->
<Grid x:Name="BackButtonGrid" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
<TextBlock x:Name="pageTitle" Grid.Column="1" Text="Calendar" Style="{StaticResource PageHeaderTextStyle}"/>
</Grid>
<Grid x:Name="CalendarGrid" Width="Auto" Height="Auto" Grid.Column="1" Grid.Row="1" VerticalAlignment="Stretch">
<Grid.Background>
<ImageBrush …
Run Code Online (Sandbox Code Playgroud)我想在这里做一些非常简单的事情,显然是不可能的.我有一个日期时间数组
DateTime[] dtArray = new DateTime[50];
Run Code Online (Sandbox Code Playgroud)
这个日期很少.我需要将此datetime数组转换为能够存储在ApplicationDataContainer中的字符串.
string test = dtArray.ToString();
Run Code Online (Sandbox Code Playgroud)
这给了我文本DateTime [] ..有没有直接的方法将整个数组转换为字符串或我必须使用for循环并将每个转换为字符串并连接它?
在App.xaml.cs
我的通用应用程序中,我打开了一个SQLConnection.我没有关闭连接.到目前为止它并没有给我带来麻烦.但这是正确的方式吗,我们可以这样离开吗?
如果我们要关闭连接(Dispose()
因为我没有看到关闭函数)我们在哪里关闭?在App_Closing
?
编辑
这就是我在App.xaml.cs中打开连接的方式
public static SQLiteConnection conn;
public void LoadDatabase()
{
conn = new SQLiteConnection( "JusWriteDB.db");
string sql = @"CREATE TABLE IF NOT EXISTS Folder (FolderCompletedStatus INTEGER, FolderPriority INTEGER, PenColor INTEGER, FolderText TEXT, FolderUUID TEXT PRIMARY KEY NOT NULL );";
using (var statement = conn.Prepare(sql))
{
try
{
statement.Step();
}
catch(Exception)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
而且(在某些其他文件中)我需要访问此连接,更新表或插入.我通过App.xaml.cs中定义的公共变量访问它
var db = App.conn;
string sql = "SELECT * from Folder Where FolderSyncStatus = 'Del'; ";
try …
Run Code Online (Sandbox Code Playgroud) c# ×8
windows-8 ×7
button ×2
animation ×1
datetime ×1
deployment ×1
navigation ×1
resx ×1
scrollview ×1
scrollviewer ×1
sqlite ×1
stackpanel ×1
storagefile ×1
tostring ×1
upgrade ×1
windows-8.1 ×1
winrt-xaml ×1
wpf ×1
xaml ×1