小编Xap*_*ann的帖子

xcode 4.5如何在发布时选择故事板

试图使我的应用程序适用于iPhone 5和iPhone 4/4s.我尝试了"AutoLayout",但似乎不适用于我的应用程序也读取它在iOS 5中不受支持.AutoLayout特别在具有UIScrollview和UIPicker的视图控制器上失败,该UIPicker在代码中重新调整大小.有两个故事板一个4英寸和一个3.5英寸似乎是要走的路.

两个Storyboard aproch似乎是我的解决方案.所以这给我留下了两个问题;

  1. 代码应该在哪里检测,如果它是4/4s/5去?我假设在didFinishLaunchingWithOptions方法的appDelegate.m中

  2. 如何更改"主要故事板"?

xcode storyboard uistoryboard xcode4.5

42
推荐指数
2
解决办法
3万
查看次数

WPF DataGrid以编程方式双击行事件

我需要以编程方式创建一个DataGrid,并需要向其添加双击行事件.这是如何在C#中完成的?我找到了这个;

myRow.MouseDoubleClick += new RoutedEventHandler(Row_DoubleClick);
Run Code Online (Sandbox Code Playgroud)

虽然这对我不起作用,因为我绑定DataGrid.ItemsSource到集合而不是手动添加行.

c# wpf datagrid

33
推荐指数
1
解决办法
5万
查看次数

按钮上的WPF Dropshadow会导致文本模糊

这有点让我疯狂.添加DropShadowEffect到按钮.在IDE中它看起来像这样:

在此输入图像描述

第二个按钮仅供参考DropShadowEffect.你可以看到下一个没有区别.然后我构建项目,当它运行时它看起来像这样:

在此输入图像描述

是什么导致了这种变化?这是两个按钮的XAML:

<Button Name="clearButton" Content="Clear" Click="clearButton_Click" Margin="5,0,5,0" MaxWidth="80" MinHeight="40" 
    TextOptions.TextFormattingMode="Display">
<Button.Effect>
    <DropShadowEffect BlurRadius="5" ShadowDepth="3" />
</Button.Effect>
</Button>
<Button Content="Clear" Margin="5,5,5,0" MaxWidth="80" MinHeight="40"  TextOptions.TextFormattingMode="Display" />
Run Code Online (Sandbox Code Playgroud)

编辑:采取@gretro确实让它看起来更好,但它仍然是不对的:

在此输入图像描述

然而在IDE中再次看起来很好:

在此输入图像描述

c# wpf dropshadow

19
推荐指数
1
解决办法
1万
查看次数

WPF根据条件隐藏数据网格中的行

我需要根据datagrid中的参数和值隐藏datagrid中的行.我想要做这样的事情;

foreach (System.Data.DataRowView dr in myDataGrid.ItemsSource)
{
   //Logic to determine if Row should be hidden
   if (hideRow == "Yes")
   {
      //Hide row code
   }
}
Run Code Online (Sandbox Code Playgroud)

我只是无法想象如何实际隐藏行.请注意我不想从数据网格或项目源中删除行.

c# wpf datagrid wpfdatagrid

17
推荐指数
2
解决办法
2万
查看次数

.NET 6 无法解压缩大型 gzip 文本

我必须在 .NET 6 应用程序中解压缩一些 gzip 文本,但是,对于一个 20,627 个字符长的字符串,它只解压缩大约 1/3。我正在使用的代码适用于 .NET 5 或 .NETCore 3.1 中的该字符串以及较小的压缩字符串。

public static string Decompress(this string compressedText)
{
    var gZipBuffer = Convert.FromBase64String(compressedText);
    using var memoryStream = new MemoryStream();
    int dataLength = BitConverter.ToInt32(gZipBuffer, 0);
    memoryStream.Write(gZipBuffer, 4, gZipBuffer.Length - 4);
    var buffer = new byte[dataLength];
    memoryStream.Position = 0;
    using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Decompress))
    {
        gZipStream.Read(buffer, 0, buffer.Length);
    }
    return Encoding.UTF8.GetString(buffer);
}
Run Code Online (Sandbox Code Playgroud)

结果看起来像这样:

令人惊叹的文本之星...... ...文本在 33,619 之前都很好,之后都是 NULLNULLNULLNULL

33,618 个字符之后的文件其余部分只是空值。

我不知道为什么会发生这种情况。

编辑:当我发现问题不是 Blazor 而实际上是 .NET 6 时,我更新了此内容。我采用了一个在 …

c# .net-6.0

17
推荐指数
1
解决办法
3450
查看次数

Blazor Checkbox双向绑定和更改事件

绑定复选框并在该复选框更改时触发事件的正确方法是什么?我尝试了几种不同的方法,但都没有完全按照我的希望工作。请注意,该复选框位于组件中。

<input type="checkbox" checked="@IsChecked" @onchange="CheckboxChanged">
@code{
      [Parameter]
      public bool IsChecked { get; set; } = true;
      private void CheckboxChanged()
      {
           Console.WriteLine($"Checkbox changed {IsChecked}");
      }
}
Run Code Online (Sandbox Code Playgroud)

当页面加载时,它会读取赋予 的值IsChecked,并且当选中 CheckBox 时,会触发该方法。但是, 的值IsChecked并未更新。然后,如果 的绑定值IsChecked在组件外部更改,则该方法不会触发,但 的值IsChecked会更改(应注意 UI 已正确更新)。

我想我需要一个像这样的实际绑定:

<input type="checkbox" @bind="IsChecked" @onchange="CheckboxChanged" >
Run Code Online (Sandbox Code Playgroud)

但是,这会产生onchange使用两个或多个

<input type="checkbox" @bind="IsChecked" @onclick="CheckboxChanged" >
Run Code Online (Sandbox Code Playgroud)

当用户单击该复选框时,它确实会触发该方法,但是IsChecked处于旧值(我假设单击发生在绑定之前)。然后,如果 的值IsChecked在组件外部发生更改,该方法将再次不会触发。

正确的方法是什么?

c# blazor blazor-server-side

14
推荐指数
2
解决办法
3万
查看次数

WPF DataGrid使用sums和其他字段进行分组

我有一个DataGrid绑定到集合,我想分组.这是代码

采集:

private string _ID;
private string _Descript;
private decimal _Amount;
public string ID
{
   get { return _ID; }
   set { _ID = value; NotifyPropertyChanged("ID"); }
 }
 public decimal Amount
 {
   get { return _Amount; }
   set { _Amount = value; NotifyPropertyChanged("Amount"); }
 }
 public string Descript
 {
   get { return _Descript; }
   set { _Descript = value; NotifyPropertyChanged("Descript"); }
  }
Run Code Online (Sandbox Code Playgroud)

C#;

ListCollectionView groupcollection = new   ListCollectionView(myCollection);
groupcollection.GroupDescriptions.Add(new PropertyGroupDescription("ID"));
myDataGrid.ItemsSource = groupcollection;
Run Code Online (Sandbox Code Playgroud)

XAML:

<DataGrid Name="myDataGrid">
<DataGrid.GroupStyle>
    <GroupStyle>
        <GroupStyle.HeaderTemplate>
            <DataTemplate> …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml datagrid

7
推荐指数
1
解决办法
1万
查看次数

C# JsonElement 转字符串而不格式化

我需要将 JsonElement 转换为字符串,但没有任何回车符、制表符或空格。一个简单的 ToString() 可以工作,但将它们留在:

data.ToString()
Run Code Online (Sandbox Code Playgroud)

结果:

"{\r\n "字段1": "值1",\r\n "字段2": "值2"\r\n }"

寻找:

"{"字段1":"值1","字段2":"值2"}"

当然,我可以执行一个简单的查找和替换字符串命令。但是,有些字段将包含回车符、制表符或空格,我不想更改它们。

编辑:无法删除此问题,请有人删除此问题,因为它已经得到答复。

c# json system.text.json jsonelement

7
推荐指数
1
解决办法
4683
查看次数

WPF将字符串传递给新窗口

我正在尝试将字符串传递给新窗口,当它打开并且无法正常工作时.这是Window 1中的代码;

窗口1

private void myButton_Click(object sender, RoutedEventArgs e)
{
    var newMyWindow2 = new myWindow2();
    newMyWindow2.Show();
    newMyWindow2.myString = "The great String Value";
}
Run Code Online (Sandbox Code Playgroud)

在Windows 2中,这是我对字符串的声明;

Windows 2

public partial class myWindow2 : Window
{
    public string myString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,字符串出现NULL.为什么是这样?

c# wpf

6
推荐指数
1
解决办法
2万
查看次数

JSON 添加节点到现有的 JObject

我正在尝试向现有节点添加一个新节点JSON JObject,但是当我添加它时,它的格式不正确。它在整个节点周围添加引号,并将 \ 放在适当的位置。

背景:我正在加载一个JSON文件,执行一些逻辑,然后重新添加一个节点。我想我可以这样做:

mainJson.Add("NewNode", JsonConvert.SerializeObject(MyObject));
File.WriteAllText("myfile.json", mainJson.ToString());
Run Code Online (Sandbox Code Playgroud)

问题是结果如下:

{
"JSONFile": [
  {
    "More": "Nodes",
    "InThe": "File"
  }
],
"Customers": "{\"FirstName\":\"Mike\",\"LastName\":\"Smith\"},{\"FirstName\":\"Jane\",\"LastName\":\"Doe\"}",
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我知道我的 JsonConvert.SerializeObject(MyObject) 正在工作:

string json = JsonConvert.SerializeObject(MyObject);
File.WriteAllText("myfile2.json" json);
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

[
  {
    "FirstName": "Mike",
    "LastName": "Smith"
  },
  {
    "FirstName": "Jane",
    "LastName": "Doe"
  }
]
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

编辑: 以下@Swagata Prateek 评论;

mainJson.Add("Customers",JObject.FromObject(MyObject));
Run Code Online (Sandbox Code Playgroud)

Newtonsoft.Json.dll 中发生类型为“System.ArgumentException”的未处理异常

附加信息:对象序列化为数组。预期的 JObject 实例。

我应该注意到 MyObject 是实际的,ObservableCollection如果这有所不同

c# json json.net

6
推荐指数
1
解决办法
1万
查看次数